SWT Invalid Thread Access auf Mac OSX (Eclipse Helios)
Habe ich die einfachste aller einfachen SWT-Programme (es ist nicht einmal die Anzeige hello world) noch:
package com.samples.swt.first;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Main {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Wenn ich dieses auf Mac OSX von Eclipse Helios, bekomme ich die folgende Fehlermeldung:
*** * ACHTUNG: Display muss erstellt werden, auf der main-thread durch den Kakao Einschränkungen.
Exception in thread "main" org.eclipse.swt.SWTException:
Invalid thread access an der org.eclipse.swt.SWT.error(SWT.java:4282) bei
org.eclipse.swt.SWT.error(SWT.java:4197) bei
org.eclipse.swt.SWT.error(SWT.java:4168) bei
org.eclipse.swt.widgets.Display.Fehler(Display.java:1065) an
org.eclipse.swt.widgets.Display.createDisplay(auf der Anzeige.java:822) an
org.eclipse.swt.widgets.Display.create(Display.java:805) an
org.eclipse.swt.Grafik.- Gerät.(Gerät.java:130) at
org.eclipse.swt.widgets.Display.(Auf der Anzeige.java:696) an
org.eclipse.swt.widgets.Display.(Auf der Anzeige.java:687) an
com.Proben.swt.erste.Main.main(Main.java:8)
Soweit ich sagen kann, ich mache alles richtig. Warum bin ich immer diese Fehlermeldung? Es sagt, dass Display
muss erstellt werden, auf dem Haupt-thread, und soweit ich sagen kann, Sie wird geschaffen auf dem Haupt-thread. Es geht dann auf zu reden Exception in thread "main"
...
EDIT:
Der Fehler ist nun Weg, ich wechselte von mit swt-debug.jar
zu swt.jar
. Wenn jemand weiß, warum die debug-Glas diesen Fehler verursacht, ich würde gerne wissen,...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die
-XstartOnFirstThread
wechseln, wenn die Anwendung gestartet wird. Diese Frage auf der SWT-FAQ erläutert die Gründe.