错误:无法在Windows 7中找到或加载主类hello

时间:2013-09-14 11:27:24

标签: java

我是一名新的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

3 个答案:

答案 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