使用Eclipse,我创建了一个SWT Hello World程序。我能够从Eclipse运行这个程序,它工作得很好。
在"/home/myname/workspace/HelloWorldSWT“中,我找到了两个文件: HelloWorldSWT.java和HelloWorldSWT.class。我想从命令行执行相应的程序。首先,我尝试输入"java HelloWorld“,得到以下错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
at gnu.java.lang.MainThread.run(libgcj.so.90)
Caused by: java.lang.ClassNotFoundException: HelloWorld not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.90)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at gnu.java.lang.MainThread.run(libgcj.so.90)我也尝试了这个"java / -cp /roman/workspace/ HelloWorld.HelloWorld“。结果,我得到了以下错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: loaded class HelloWorld.HelloWorld was in fact named HelloWorld
at java.lang.VMClassLoader.defineClass(libgcj.so.90)
at java.lang.ClassLoader.defineClass(libgcj.so.90)
at java.security.SecureClassLoader.defineClass(libgcj.so.90)
at java.net.URLClassLoader.findClass(libgcj.so.90)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at gnu.java.lang.MainThread.run(libgcj.so.90)有人知道我做错了什么吗?提前感谢您的帮助。
发布于 2010-02-17 04:58:36
转到Debug透视图,并选择您刚刚运行的程序(其中显示Terminated,exit value...在Debug选项卡中(),右键单击并选择Properties,在那里您可以看到eclipse启动的整个命令行命令。
您可以在与eclipse相同的目录中运行相同的命令(请参阅运行配置、参数、工作目录),它将正常工作。
发布于 2010-02-17 06:30:00
您必须在类路径中添加eclipse存储HelloWorldSWT.class文件的目录。它是在项目创建时定义的,如"bin“、"build”或"classes“。检查项目属性或搜索HelloWorldSWT.class文件。
假设它是HelloWorldSWT工作区中的build目录,并且您的类不在任何包(默认包)中,则命令应为:
java -cp /home/roman/workspace/HelloWorldSWT/build HelloWorldSWT或者直接切换到该目录并使用:
java -cp . HelloWorldSWT编辑:
-cp .意味着只有实际的目录用于查找类文件。您还必须添加程序使用的所有库(JAR或其他目录)(数据库、SWT等)。
有关更多详细信息,请参阅文档:How Classes are Found、Setting the Classpath和java comand
发布于 2014-06-25 05:14:51
我做了一些变通方法,以便充分利用Eclipse的便利性。下面是我的发现,它对我来说效果很好。希望它能有所帮助:

https://stackoverflow.com/questions/2276219
复制相似问题