Ich habe ein Klasse "Test" welche von java.rmi.server.UnicastRemoteObject erbt. Nun übergebe ich eine Referenz einer Instanz davon der Klasse GuiTest. GuiTest macht nur ein Fenster aus (SWT). Wenn ich das Fenster wieder schließe endet aber nicht der Prozess. In Eclipse steht dann nur folgendes und Thread [DestroyJavaVM] läuft und läuft ...:
Wenn "Test" nicht von java.rmi.server.UnicastRemoteObject erben würde, tritt das nicht auf. Auch wenn ich nur Test instanzieren tue und das nicht GuiTest übergeben würde tritt es auch nicht auf.
MyTest [SWT Application]
MyTest at localhost:1439
Thread [DestroyJavaVM] (Running)
C:\Programme\Java\jre1.6.0\bin\javaw.exe (13.03.2007 10:04:50)
Wenn "Test" nicht von java.rmi.server.UnicastRemoteObject erben würde, tritt das nicht auf. Auch wenn ich nur Test instanzieren tue und das nicht GuiTest übergeben würde tritt es auch nicht auf.
Code:
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Test extends UnicastRemoteObject {
public Test() throws RemoteException {
}
}
Code:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class GuiTest {
Test test;
public Shell shell;
public Display display;
public GuiTest(Test test) {
this.test = test;
}
public void create() {
display = new Display();
shell = new Shell(display, SWT.SHELL_TRIM);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Code:
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Test test = new Test();
GuiTest gui = new GuiTest(test);
gui.create();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}