Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SWT: Applikation läuft unter Eclipse, aber nicht alleine

1 view
Skip to first unread message

Peter Müller

unread,
Jul 31, 2008, 2:48:04 PM7/31/08
to

Ich habe folgende Klasse:

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;

public class MainWindow extends ApplicationWindow {
public MainWindow() {
super( null );
}
protected Control createContents( Composite a_parent ) {
return a_parent;
}

static public void main( String[] args ) {
MainWindow mainWindow = new MainWindow();

mainWindow.setBlockOnOpen( true );
mainWindow.open();
Display.getCurrent().dispose();
}

Wenn ich das Programm mit Eclipse laufen lasse, läuft alles bestens.
Wenn ich es aber extern (aus einem jar-archive) starte, bleibt es
merkwürdiger Weise stehen und behindert den ganzen Rechner. Das Fenster
lässt sich nicht verschieben. Wenn ich versuche es zu vergrößern, wird
folgendes geworfen

Exception in thread "Thread-20" org.eclipse.swt.SWTException: Invalid
thread access
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Display.error(Unknown Source)
at org.eclipse.swt.widgets.Display.checkDevice(Unknown Source)
at org.eclipse.swt.widgets.Display.getCursorLocation(Unknown Source)
at org.eclipse.swt.widgets.Display.mouseHoverProc(Unknown Source)
Exception in thread "main" org.eclipse.swt.SWTException: Device is disposed
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Display.error(Unknown Source)
at org.eclipse.swt.widgets.Display.checkDevice(Unknown Source)
at org.eclipse.swt.widgets.Display.update(Unknown Source)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:827)
at org.eclipse.jface.window.Window.open(Window.java:796)
at peter.Gui.Gui.show(Gui.java:18)
at peter.Main.<init>(Main.java:21)
at peter.Main.main(Main.java:25)

Die Klassen Gui und Main machen effektiv das gleiche wie die obrige main
Methode. Ich erzeuge keine Threads.

Wenn ich das Fenster nicht derartig kastriert aufbaue, dann werden schon
beim Aufbau Exceptions geworfen. Dabei werden die StyledText Widgets
nicht gezeigt.

Was ist los???

Das ganze läuft auf einem PPC Mac.

Die folgenden Biliotheken werden mit eingebunden:
org.eclipse.core.commands_3.3.0.I20070605-0010.jar
org.eclipse.equinox.common_3.3.0.v20070426.jar
org.eclipse.jface_3.3.2.M20080207-0800.jar
org.eclipse.jface.databinding_1.1.1.M20080207-0800.jar
org.eclipse.jface.text_3.3.2.r332_20071017-0800.jar
org.eclipse.osgi_3.3.2.R33x_v20080105.jar
org.eclipse.ui.workbench_3.3.2.M20080207-0800.jar
swt.jar


Das verwendete Java ist:
build 1.5.0_13-119, mixed mode, sharing

Olaf Willuhn

unread,
Aug 1, 2008, 9:52:36 AM8/1/08
to
HI,

> Wenn ich das Programm mit Eclipse laufen lasse, läuft alles bestens.
> Wenn ich es aber extern (aus einem jar-archive) starte, bleibt es
> merkwürdiger Weise stehen und behindert den ganzen Rechner. Das Fenster
> lässt sich nicht verschieben. Wenn ich versuche es zu vergrößern, wird
> folgendes geworfen

[...]


> Das ganze läuft auf einem PPC Mac.

Vielleicht fehlt der JVM-Parameter "-XstartOnFirstThread"?

Siehe auch:
http://www.eclipse.org/swt/faq.php#carbonapp
http://www.eclipse.org/swt/macosx/

Gruss
Olaf

0 new messages