为什么我无法使用 Ubuntu 编译 Java 应用程序?

问题描述 投票:0回答:4

我已经尝试了大约两天的时间来从 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
4个回答
3
投票

尝试:

java input.Main

从错误的外观来看,您的主类位于包“input”中。运行类时需要指定包名,而不是文件名。


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

0
投票

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

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

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

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

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

请点击此链接了解更多信息。

编辑:好吧,我看到你已经明白了。恭喜。


0
投票

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

该类应位于目录

./input
中,该目录中的文件应称为
Main.class
,java 命令应为 '
java input.Main
'。

© www.soinside.com 2019 - 2024. All rights reserved.