Używanie Eclipse Stworzyłem program SWT Hello World. Byłem w stanie uruchomić ten program z Eclipse i działało dobrze.Czy mogę uruchomić z programu wiersza poleceń utworzonego przez Eclipse?
W "/ home/myname/workspace/HelloWorldSWT" znalazłem dwa pliki: HelloWorldSWT.java i HelloWorldSWT.class. Chciałem wykonać odpowiedni program z wiersza poleceń. Najpierw próbował wpisać "Java HelloWorld" i mam następujący komunikat o błędzie:
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)
Próbowałem też ten "Java Cp/home/roman/roboczy/HelloWorld.HelloWorld". W wyniku otrzymałem następujący komunikat o błędzie:
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)
Czy ktoś wie, co robię źle? Z góry dziękuję za pomoc.
Dziękuję za odpowiedź. Jestem nowicjuszem w Javie i nie rozumiem esencji. Mam na myśli, że wydaje mi się dziwne, że musimy użyć kilku trudnych sposobów uruchomienia aplikacji SWG bez Eclipse. Jaki jest pożytek z programu napisanego w Eclipse, jeśli można go łatwo uruchomić tylko w środowisku Eclipse? – Roman
Jeśli potrzebujesz prostej aplikacji GUI w Javie, nie używaj SWT, ale Swing. Jeśli używasz SWT, musisz zarządzać jego zależnościami. Tworząc aplikację RCP, platforma zarządza tymi zależnościami, ale w przypadku programów standardowych trzeba polegać na słojach SWT przy użyciu ścieżek klas. –