首先,我對 Java 知之甚少,對 SWT 更是知之甚少,所以在這里對我一無所知。今天早些時候,我嘗試運行我在https://mkyong.com/swt/swt-hello-world-example上找到的這個簡單程式
這是代碼:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class SWTHelloWorld {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell(display);
Text helloWorldTest = new Text(shell, SWT.NONE);
helloWorldTest.setText("Hello World SWT");
helloWorldTest.pack();
shell.pack();
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
當我運行它時,我收到此錯誤:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/swt/widgets/Composite has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
我從中了解到的是,當 SWT 應該使用 Java 8 編譯時,它正在使用 Java 11 進行編譯,但是 - 這是一個很大的問題 - 我沒有 Java 11 我洗掉了它,只有 Java 8 并避免了這種的問題。當我在終端中運行命令 java -version 和 javac -version 在這兩種情況下,我得到這個版本'1.8.0_331',沒有別的了。我還在 Eclipse 中檢查了我的設定和配置,一切似乎都設定為在 Java 8 上運行。最終我在終端中嘗試了這個命令javac -target 1.8.0_331 SWTHelloWorld.java來定位正確的編譯器,但我得到了javac: invalid target release: 1.8.0_331. 我不知道從那里去哪里。任何人?
提前謝謝各位!
PS:如果重要的話,我正在使用 macOS Big Sur 11.4。
uj5u.com熱心網友回復:
卸載 Java 11 不會更改 SWT 本身編譯的版本。您的應用程式至少需要 Java 11,因為您正在使用的庫 SWT 需要它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467107.html
上一篇:RecyclerView顯示串列
下一篇:Java在eclipse中運行并且會編譯,但不會在cmd上執行,但仍然在eclipse中運行。我怎樣才能讓它在cmd中執行?
