在命令提示符下编译并运行java程序

时间:2014-02-27 04:45:07

标签: java path compilation classpath command-prompt

我写了一个简单的hello world程序,如下所示

package helloworld;

public class helloWorld 
{
    public static void main(String[] args)
    {
        System.out.println("Hello, World!");
    }
}

我正在使用Windows 7并在环境变量窗口中设置了我的CLASSPATH和PATH变量

C:\Program Files\Java\jdk1.6.0_24\bin;

该计划位于

C:\Users\Admin\Documents\NetBeansProjects\javaAssignment\src\helloWorld

所以,基本上当我尝试在命令提示符下运行它时,会发生以下情况

C:\Users\Admin\Documents\NetBeansProjects\javaAssignment\src\helloWorld>javachelloWorld.java

C:\Users\Admin\Documents\NetBeansProjects\javaAssignment\src\helloWorld>java helloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: helloWorld (wrong name: helloworld/helloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: helloWorld.  Program will exit.

该程序似乎编译正常,不会抛出任何错误。但是,当我试图运行它时,它表示已经发生异常。 我试着看着谷歌认为设置我的PATH和CLASSPATH是错误的,但我似乎没有发现任何问题。

2 个答案:

答案 0 :(得分:2)

如果你的helloWorld.java文件在一个包中,你可以按如下方式运行:

C:\Users\Admin\Documents\NetBeansProjects\javaAssignment\src\
java packageName.helloWorld

从helloworld包目录外部运行代码,即从src目录运行(C:\ Users \ Admin \ Documents \ NetBeansProjects \ javaAssignment \ src)

同时检查java文件的名称是否与您的类名相同(helloWorld.java)

此外,您的软件包的名称似乎是helloworld(全部都是小写字母),但文件夹名称是helloWorld(注意W是大写)这两个名称都需要匹配。

答案 1 :(得分:0)

发出命令时,您需要确保您在包含helloWorld.class文件的目录中

java helloWorld