所以我想设置PATH和CLASSPATH系统变量,这样我就可以在命令行中使用javac和java命令了。我可以在eclipse中编译和运行java程序,但我也希望能够通过命令行运行它们。
这是我安装Java的地方:
C:\Program Files (x86)\Java
jdk1.6.0_20
jre6
这就是eclipse存储我的Java项目的地方:
D:\java-projects
HelloWorld
bin
HelloWorld.class
src
HelloWorld.java
我已经设置了这样的PATH和CLASSPATH变量:
PATH: C:\Program Files (x86)\Java\jdk1.6.0_20\bin
CLASSPATH: D:\java-projects
但它不起作用。我写的时候:
java HelloWorld
或者:
java HelloWorld.class
我得到这样的错误:
Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorld
错误更长,这只是第一行。
我该如何解决这个问题?我主要感兴趣的是能够从命令行运行已编译的.class程序,我可以在日食中进行编译。
答案 0 :(得分:3)
您的类路径应指向“D:\ java-projects \ HelloWorld \ bin”。
或者,您可以使用“-cp”参数指定类路径,而不是使用环境变量:
java -cp D:\ java-projects \ HelloWorld \ bin HelloWorld
答案 1 :(得分:2)
您需要将类路径设置为
d:\java-projects\bin
目前你还没有“bin”部分。
请注意,java HelloWorld.class
永远不会有效 - 它位于类名称之后,而不是文件名称。
答案 2 :(得分:1)
您的CLASSPATH
未指向class
文件所在的目录。
答案 3 :(得分:1)
您的类路径应指向D:/ java-projects / bin
但我会邀请您使用一些构建工具来管理您的项目。 看看ANT,Maven,Gradle。
答案 4 :(得分:1)
您的PATH
环境变量应包含JDK安装目录的bin
目录。因此,您应该将C:\Program Files (x86)\Java\jdk1.6.0_20\bin
添加到PATH
。
不建议设置永久CLASSPATH
环境变量,因为它是一个全局设置,会影响您在计算机上运行的所有Java程序。如果未设置CLASSPATH
,则Java默认只查看当前目录。
不要设置CLASSPATH
,而是使用-cp
命令中的-classpath
或java
选项,例如:
java -cp D:\java-projects\HelloWorld\bin HelloWorld
如果您不想在每次要运行程序时键入该命令,请将该命令放在批处理文件中(例如hello.bat
),然后只需键入hello
即可运行该文件}。