2

我是一名新的 Java 学生,我正在命令提示符下运行一个 hello world 程序,但出现错误

  class hello{

public static void main(String agrs[]){
 system.out.println("Hello world");
}

}

这是我的 hello world 程序

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
4

3 回答 3

10

您还需要设置类路径变量。目前您刚刚设置了 PATH 变量

1)PATH和CLASSPATH之间的主要区别在于PATH是一个环境变量,用于定位JDK二进制文件,如用于运行java程序和编译java源文件的“java”或“javac”命令。另一方面,系统或应用程序类加载器使用 CLASSPATH 环境变量来定位和加载存储在 .class 文件中的编译 Java 字节码。

2)为了在 Java 中设置 PATH,您需要在 PATH 环境变量中包含 JDK_HOME/bin 目录,而为了在 Java 中设置 CLASSPATH,您需要包含您放置 .class 文件或 JAR 文件的所有目录Java 应用程序所需的。

3) PATH 和 CLASSPATH 之间的另一个显着区别是 PATH 不能被任何 Java 设置覆盖,但可以通过为“java”和“javac”命令提供命令行选项 -classpath 或 -cp 或使用 Class- 来覆盖 CLASSPATH JAR 档案内的清单文件中的路径属性。

于 2013-09-14T11:36:11.067 回答
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
于 2013-11-22T05:17:30.100 回答
-1

sudo vim /etc/profile

然后你添加: export CLASSPATH=$CLASSPATH:.

退出vim,然后

source /etc/profile

于 2015-06-02T04:17:16.470 回答