0

如果之前已经发布过,我很抱歉,但我似乎已经阅读并理解这个问题和修复有很多可能的原因。我正在创建一个 Jetty 服务器并尝试从命令行而不是 Eclipse IDE 编译它,我正在使用这个 javac 命令来编译它:

 javac -cp jetty-all.jar:servlet-api.jar Handle.java Listener.java Files.java     StartStopServer.java Main.java 

Main.java 是我在 Eclipse 中运行程序的类。

当我做:

java -cp jetty-all.jar:servlet-api.jar:. Main

它给了我以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: com/gorillalogic/quotes/Main)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)

任何人都可以帮助我提供这些信息,还是您需要更多信息?请回复。我愿意发布代码,但是,如果没有必要,我不想发布它。对不起,如果这是一个愚蠢的错误或者我很愚蠢。

谢谢!-亨利

4

1 回答 1

3

简单:您必须以保留包结构的方式进行编译:

javac -cp jetty-all.jar:servlet-api.jar -d . Handle.java Listener.java Files.java StartStopServer.java Main.java 

并使用类的全名启动:

java -cp jetty-all.jar:servlet-api.jar:. com.gorillalogic.quotes.Main
于 2013-02-25T20:48:14.027 回答