我试图运行一个非常简单的程序,并且遇到错误。我做了一个非常简单的helloworld java程序,并且无法在Mac上从终端运行它。我已经检查确保classpath设置正确,并且为什么它没有运行而感到困惑。Hello World上的NoClassDefFoundError
下面是程序:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
这里是终端命令:
Last login: Thu May 2 12:01:50 on ttys000
172-26-125-179:~ rohan$ cd /Users/rohan/Desktop
172-26-125-179:Desktop rohan$ ls
Hello.java
172-26-125-179:Desktop rohan$ echo $CLASSPATH
172-26-125-179:Desktop rohan$ export CLASSPATH=/Users/rohan/Desktop
172-26-125-179:Desktop rohan$ echo $CLASSPATH
/Users/rohan/Desktop
172-26-125-179:Desktop rohan$ java Hello.java
Exception in thread "main" java.lang.NoClassDefFoundError: Hello/java
Caused by: java.lang.ClassNotFoundException: Hello.java
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)
172-26-125-179:Desktop rohan$
任何想法将不胜感激! UPDATE忽略在前一种情况下,这是我的问题的一个更好的视野:
Last login: Thu May 2 13:05:17 on ttys000
172-26-125-179:~ rohan$ cd /Users/rohan/Dropbox/Current/ds/lab6
172-26-125-179:lab6 rohan$ ls
Hello.java
172-26-125-179:lab6 rohan$ cat Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("hi");
}
}
172-26-125-179:lab6 rohan$ echo $CLASSPATH
172-26-125-179:lab6 rohan$ export CLASSPATH=/Users/rohan/Dropbox/Current/ds/lab6
172-26-125-179:lab6 rohan$ echo $CLASSPATH
/Users/rohan/Dropbox/Current/ds/lab6
172-26-125-179:lab6 rohan$ javac Hello.java
172-26-125-179:lab6 rohan$ java Hello.class
Exception in thread "main" java.lang.NoClassDefFoundError: Hello/class
Caused by: java.lang.ClassNotFoundException: Hello.class
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)
172-26-125-179:lab6 rohan$
哪里是类文件中创建? – OldProgrammer 2013-05-02 16:52:12
@OldProgrammer它不是;那就是问题所在。看看'ls'输出。 – wchargin 2013-05-02 16:53:24