我一直在尝试用两天的时间让我的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.
答案 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
”。