我在命令行上运行java时遇到问题。我已经检查了很多其他问题,没有一个能解决我的问题。
我正在使用Windoze 10 x64
。
安装在C:\Program Files\Java
,我有以下文件:
jdk1.8.0_121
和jre1.8.0_121
。
我已将JAVA_HOME
,PATH
和CLASSPATH
设置如下:
JAVA_HOME as C:\Program Files\Java\jdk1.8.0_121
PATH as %JAVA_HOME%/bin
CLASSPATH as %JAVA_HOME%/lib
这是系统变量的当前配置。我为配置尝试了很多变化但似乎没有任何帮助。例如也添加到PATH %JAVA_HOME%\jre1.8.0_121\bin
。似乎没有任何帮助。
如果我运行java -version
和javac -version
,则会显示已安装的当前版本。
我也可以编译,例如:javac HelloWorld.java
成功。
当我尝试java HelloWorld
时,我得到Could not find or load main class HelloWorld
。
以下是HelloWorld.java
文件:
public class HelloWorld{
public static void main(String [] args){
System.out.println("Hello World!");
}
}
我花了+2小时试图解决这个问题。我确定这是一个新手的错误但老实说,我只是想设置它,所以我可以开始学习Java。
我可以使用IntelliJ IDEA Community Edition
的控制台运行java,但不能直接在CMD上运行。
如果你能像LI5那样引导我,我真的很感激,我真的寻找解决方案,观看有关如何设置系统变量的视频,但它没有产生任何效果。
如果您需要更多信息,我很乐意提供,谢谢。
编辑:好的,这个问题已经解决了。感谢@azurefrog和@mirmdasif帮我搞清楚。你可以在azurefrog的评论和mirmdasif的回复中阅读Here及其下方,你需要将当前的工作目录添加到CLASSPATH
。
通过向CLASSPATH
添加.
(点),将当前工作目录添加到CLASSPATH
。
所以CLASSPATH
应该是这样的:.;%JAVA_HOME%/lib
(注意.
后跟分号;
。
答案 0 :(得分:1)
问题在于您的CLASS_PATH
变量。
指定类路径的首选方法是使用-cp命令行开关。这允许为每个应用程序单独设置CLASSPATH,而不会影响其他应用程序
ClassPath变量的默认值为'。' ,这意味着只搜索当前目录。如果指定classpath变量,则将覆盖默认值。
如果想将classpath设置为环境变量,可以在cmd提示符下运行以下cmd(记住开头的点)
C:> set CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_121\lib\*
了解更多信息http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html
答案 1 :(得分:0)
有时它会发生。您应该尝试在C:\Windows\System32
中找到 java.exe ,如果有,则需要将其删除。
答案 2 :(得分:0)
只要您得到以下信息,就继续在classpath中更新您的环境变量: 错误:找不到或加载主类XXX
然后浏览到 C:\ Program Files \ Java \ jre1.8.0_181