我是一名新的java学生 我在命令提示符下运行hello world程序,但是我收到错误
class hello{
public static void main(String agrs[]){
system.out.println("Hello world");
}
}
这是我的hello world program
G:\java>javac hello.java
G:\java>dir
Volume in drive G has no label.
Volume Serial Number is 32DF-BA6B
Directory of G:\java
14-Sep-13 04:36 PM <DIR> .
14-Sep-13 04:36 PM <DIR> ..
14-Sep-13 04:36 PM 415 hello.class
14-Sep-13 04:35 PM 100 hello.java
2 File(s) 515 bytes
2 Dir(s) 55,645,966,336 bytes free
G:\java>java hello
Error: Could not find or load main class hello
我的java路径是对的
G:\java>path
PATH=G:\Windows\system32;G:\Windows;G:\Windows\System32\Wbem;G:\Windows\System32
\WindowsPowerShell\v1.0\;G:\Program Files\Java\jdk1.7.0_25\bin
但是什么时候使用这个命令然后程序运行。
G:\java>java -classpath . hello
Hello world
我想问一下为什么我的程序运行不正常我的路径设置变量有什么问题?我想正常运行我的程序
G:\java>java hello
答案 0 :(得分:10)
您还需要设置classpath变量。目前您刚刚设置了PATH变量
1)PATH和CLASSPATH之间的主要区别在于PATH是一个环境变量,用于定位JDK二进制文件,如用于运行java程序和编译java源文件的“java”或“javac”命令。另一方面,System或Application ClassLoader使用CLASSPATH环境变量来定位和加载存储在.class文件中的编译Java字节码。
2)为了在Java中设置PATH,您需要在PATH环境变量中包含JDK_HOME / bin目录,而为了在Java中设置CLASSPATH,您需要包含放置.class文件或JAR的所有目录Java应用程序所需的文件。
3)PATH和CLASSPATH之间的另一个显着区别是,任何Java设置都不能覆盖PATH,但可以通过向“java”和“javac”命令提供命令行选项-classpath或-cp来覆盖CLASSPATH,或者通过在JAR存档中的Manifest文件中使用Class-Path属性。
答案 1 :(得分:2)
从以下系统变量设置:
C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Program Files\Java\jdk1.7.0_45\bin
到
.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Program Files\Java\jdk1.7.0_45\bin
答案 2 :(得分:0)
sudo vim /etc/profile
然后你添加:
export CLASSPATH=$CLASSPATH:.
退出vim,然后
source /etc/profile