java windows cmd 下编译运行问题

本文主要介绍了在Windows命令行(CMD)环境下,使用Java进行编译和运行时可能遇到的问题及解决方法。重点讨论了JAVA_HOME、classpath和Path环境变量的正确设置,特别是`.`在classpath中的作用,以及如何确保javac和java命令在系统路径中可执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题一:在 cmd 输入 javac 时报错,说 javac 不是内部和外部命令
解   决:环境变量配置错了,如下配置环境变量
  • JAVA_HOME  =   C:\Program Files\Java\jdk1.7.0_45(以默认安装路径为例,如果不是默认,自己修改成 java 安装的路径)
  • classpath   =   .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (注意刚开始的那个点号,很多人配置的时候忽略了它,其表示当前路径。注意是英文的分号)
  • Path   =   %JAVA_HOME%\bin; (在已有的后面追加,用分号分隔)

问题二:java、javac命令都好使,能够编译,用 java 命令执行时报错如下
Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello : Unsup
ported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

解   决:执行命令“java -versio”和“javac -version”,会发现 java 程序的编译环境 javac 高于 java 执行环境。引发不一致的原因可能是在你其他软件中包含有不同版本的 java 运行环境,而且寻找 java 路径先找到了他,所以你配置的那个环境就忽略了,而 java 编译环境则是找到了你配置的那个路径,所以不同。只需要在环境变量 path 里将你配置的 java 环境放到最前面即可。


问题三:javac 好使的情况下,在eclipse下能够编译运行,但是 cmd 执行class文件时就是不行,helloworld能运行,但是运行其他带有package关键字的则提示“找不到或无法加载主类
解   决:亲,你被 IDE 惯坏了,注意存在的 package 路径。最简单的方法就是删掉第一行的 package 那句话,然后进入到 .java 文件所在的目录下,执行 "javac 文件名.java" 然后再 "java 文件名"即可。
也可以这样:
       javac main/MainClass.java     // main 为包名
       java main.MainClass


问题四:能够编译执行 java 程序,但是不在当前 .class 的路径下,通过   d:\\code\java······ 这种绝对路径方式和相对路径方式都执行不了
解   决:java 执行的只能是文件面加后缀,如果指定路径,则要通过 java 命令的 -cp 关键字


问题五:当程序中调用第三方的 jar 包时,传统命令则报出找不到相关内容的错误
解决:
 javac -cp jsoup-1.7.1 Test.java    // 我将jsoup与源文件都放到了同一个目录下
 java -cp .;jsoup-1.7.1 Test       // 注意 点 分号 和 jar包名 之间没有空格




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值