为什么可以';我不能用Ubuntu编译我的Java应用程序吗?

为什么可以';我不能用Ubuntu编译我的Java应用程序吗?,java,compiler-construction,Java,Compiler Construction,我花了两天的时间试图从Ubuntu的命令行编译java应用程序。我知道我已经安装了Java,因为我可以在Eclipse和Netbeans中运行我的应用程序,而且它们工作得很好。但是,如果我想从命令行编译我的应用程序,我会得到以下错误消息: javac Main.java Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: input/Main) at java.lang.ClassLoa

我花了两天的时间试图从Ubuntu的命令行编译java应用程序。我知道我已经安装了Java,因为我可以在Eclipse和Netbeans中运行我的应用程序,而且它们工作得很好。但是,如果我想从命令行编译我的应用程序,我会得到以下错误消息:

javac Main.java 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. javac Main.java 一切都很好,没有错误或任何事情。然后我尝试:

java Main 爪哇岛 我得到这个错误信息:

javac Main.java 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. 线程“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。程序将退出。请尝试:

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

请尝试:


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

这看起来像是典型的类路径问题。Eclipse和Netbeans将为您设置类路径,但是当您向命令行写入时,您需要自己完成

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

CLASSPATH=/path/to/your/java/class/file
java -cp /path/to/your/java/class/file Main
或者,您也可以从java命令行执行此操作:

CLASSPATH=/path/to/your/java/class/file
java -cp /path/to/your/java/class/file Main
关注更多信息


编辑:好吧,我看你明白了。祝贺你

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

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

CLASSPATH=/path/to/your/java/class/file
java -cp /path/to/your/java/class/file Main
或者,您也可以从java命令行执行此操作:

CLASSPATH=/path/to/your/java/class/file
java -cp /path/to/your/java/class/file Main
关注更多信息


编辑:好吧,我看你明白了。祝贺你

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


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

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


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

打开终端并粘贴此命令:

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

打开端子并粘贴此命令:

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

并从包含
input
目录而不是
input
目录本身(应该包含
Main.class
)的目录运行。并从包含
input
目录而不是
input
目录本身(应该包含
Main.class
)的目录运行.这与tomcat无关.这与tomcat无关。