|
楼主 |
发表于 2007-7-5 18:25:41
|
显示全部楼层
回覆folklore:
測試程式碼裡有import org.eclipse.swt.widgets.*; import org.eclipse.swt.*; 應該就是使用swt開啟視窗並顯示Hello World!訊息.
我在shell下輸入 #javac SWTHello.java , 可以輸出SWTHello.class, 但#java SWTHello , 就出現錯誤訊息:
Exception in thread "main" java.lang.NoClassDefFoundError: SWTHello
at java.lang.Class.initializeClass(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/java/jdk1.6.0/lib/,file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
我之前試過兩個程式碼都是正常的, 一個是HelloWorld.java:
public class HelloWorld {
// @param args
public static void main(String[] args) {
for (int i=0; i<=4; i++){
System.out.println("Hello World!");
// TODO Auto-generated method stub
}
}
}
在shell下執行javac HelloWorld.java和java HelloWorld都正常, 這個程式純粹在shell下print出HelloWorld訊息.
另一個是swingtest.java:
import javax.swing.*;
public class swingtest {
public static void main(String[] args) {
JFrame frame = new JFrame("HelloWorldSwing");
final JLabel label = new JLabel("test Hello World");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
這個程式碼用到 import javax.swing.*; 可以正常javac swingtest.java, 在shell下執行#java swingtest, gnome可以正常跳出swt視窗並顯示HelloWorld!訊息.
回覆dukeduan:
我試著在.bashrc的最後加上:
export JAVA_HOME=/usr/java/jdk1.6.0
export PATH=$PATHJAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib:./
儲存後再重開機, 在shell下 #java SWTHello , 還是出現Exception in thread "main" java.lang.NoClassDefFoundError: SWTHello
at java.lang.Class.initializeClass(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/java/jdk1.6.0/lib/,file:./],
我猜是import org.eclipse.swt.widgets.*; import org.eclipse.swt.*; 這兩行搞的鬼, 但我上面swingtest程式裡用到的 import javax.swing.*; 就正常, 一定是我不懂SWTHello.java裡的org.eclipse.swt的使用觀念的問題.
any solutions? |
|