我使用 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/home/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)
有人知道我做错了什么吗?提前感谢您的帮助。
最佳答案
进入 Debug 透视图,然后选择您刚刚运行的程序(其中显示 Terminated, exit value... in the Debug 选项卡)右键单击,然后选择 Properties,您可以看到eclipse 启动的整个命令行命令。
您可以在 eclipse 所做的同一目录中运行相同的命令(请参阅运行配置、参数、工作目录),它会起作用。
关于java - 我可以从 Eclipse 创建的命令行程序运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2276219/