2012-06-11 49 views
3

我目前使用的是Ubuntu 11.10和java SE 1.6.0_26。我正在尝试运行一个非常简单的“Hello World”应用程序。我把java文件HelloWorld.java放在Home文件夹中。我使用命令javac HelloWorld.java编译它。我认为它的工作原理是因为它没有显示任何编译错误,并且创建了HelloWorld.classJava应用程序无法启动

当我键入命令java HelloWorld我有这样的错误:

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld 
Caused by: java.lang.ClassNotFoundException: HelloWorld 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: HelloWorld. Program will exit. 

顺便说一句,这是我的Java代码:

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

你从哪个文件夹运行java命令? –

+0

@AmitBhargava主文件夹。我的HelloWorld.java和HelloWorld.class所在的目录。 – TheOnlyIdiot

+2

请问您可以试试以下内容:java -classpath HelloWorld –

回答

7

这可能是因为该文件是不是在你的类路径..试试下面的命令:

java -classpath . HelloWorld 

V

+0

嘿,它的工作。你能告诉我问题的原因吗?谢谢。 – TheOnlyIdiot

+0

我觉得很奇怪Java会遇到类路径问题,除非安装不正确。通常,(U)buntu上的非包java文件不应该有这个问题,但无论如何这总是一件好事。 – Makoto

+1

@TheOnlyIdiot - 就像他说的,问题在于这个类不在你的类路径中。这一切都在'java'命令的手册条目中解释。特别是关于设置类路径的页面。 –