为什么我不能使用Ubuntu编译我的Java应用程序?

时间:2009-08-24 16:54:22

标签: java compiler-construction

我一直在尝试用两天的时间让我的java应用程序从Ubuntu的命令行编译。我知道我安装了Java,因为我可以在Eclipse和Eclipse中运行我的应用程序。 Netbeans和他们工作正常。但是,如果我想从命令行编译我的应用程序,我会收到以下错误消息:

javac Main.java

一切都很好,没有错误或任何东西。然后我尝试:

java Main

我收到此错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: input/Main)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:637)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Main. Program will exit.

4 个答案:

答案 0 :(得分:2)

尝试:

java input.Main

根据您的错误,您的Main类位于包“输入”中。您需要在运行类时指定包名,而不是文件名。

答案 1 :(得分:1)

打开终端并粘贴此命令:

export CLASSPATH=.:/usr/local/tomcat/common/lib/jsp-api.jar:/usr/local/tomcat/common/lib/servlet-api.jar:/home/trenog/javokapi/bin/xmlrpc.jar

答案 2 :(得分:0)

这看起来像是经典的Classpath问题。 Eclipse和Netbeans将为您设置类路径,但是当您写入命令行时,您就是自己的。

假设您正在使用BASH,请尝试在命令行中键入以下内容:

CLASSPATH=/path/to/your/java/class/file

或者,您也可以从java命令行执行此操作:

java -cp /path/to/your/java/class/file Main

关注this link了解详情。

编辑:嗯,我看到你弄清楚了。恭喜。

答案 3 :(得分:0)

类加载器根本无法找到类input.Main。

该类应位于目录./input中,该目录中的文件应调用Main.class,java命令应为“java input.Main”。