我可以从 Eclipse 创建的命令行程序运行吗?
2022-09-01 13:36:57
使用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)
有谁知道我做错了什么?提前感谢您的任何帮助。