我已经尝试了大约两天的时间来从 Ubuntu 中的命令行编译我的 java 应用程序。我知道我安装了 Java,因为我可以在 Eclipse 和 Netbeans 中运行我的应用程序,并且它们工作正常。但如果我想从命令行编译我的应用程序,我会收到以下错误消息:
javac Main.java
一切都很好,没有错误或任何东西。然后我尝试:
java 主
我收到此错误消息:
线程“main”java.lang.NoClassDefFoundError中的异常:Main(错误名称:input/Main) 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:637) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 在 java.net.URLClassLoader.access$000(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:212) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:205) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:323) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:268) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336) 找不到主类:Main。程序将退出。
尝试:
java input.Main
从错误的外观来看,您的主类位于包“input”中。运行类时需要指定包名,而不是文件名。
打开终端并粘贴此命令:
export CLASSPATH=.:/usr/local/tomcat/common/lib/jsp-api.jar:/usr/local/tomcat/common/lib/servlet-api.jar:/home/trenog/javokapi/bin/xmlrpc.jar
这看起来像是一个经典的类路径问题。 Eclipse 和 Netbeans 将为您设置类路径,但当您写入命令行时,您就得靠自己了。
假设您使用的是 BASH,请尝试在命令行中输入以下内容:
CLASSPATH=/path/to/your/java/class/file
或者,您也可以从 java 命令行执行此操作:
java -cp /path/to/your/java/class/file Main
请点击此链接了解更多信息。
编辑:好吧,我看到你已经明白了。恭喜。
类加载器根本找不到类input.Main。
该类应位于目录
./input
中,该目录中的文件应称为 Main.class
,java 命令应为 'java input.Main
'。