안녕하세요, 저는 원격 객체이고 메소드를 구현 한 클래스를 가지고 있습니다. 그 다음에 나는 내 지역에서 그것을 테스트하고 싶었다. 그래서 나는 그것에 기본 방법을 추가했습니다. 그런 다음 주에서는 runtUtilApp 메서드를 호출하여 메모장을 실행하고 잠자기 후 메모장의 작업을 끝내고 stop 메서드를 호출했습니다. 모든 실행이 끝나면 실행을 끝내기 위해 프로그램을 기다립니다. 그러나 그것은 아직도 일하고 끝나지 않습니다.Rmi, 프로그램이 끝나지 않았습니까?
이유는 무엇입니까? 내가 잘못 생각하고 있습니까?
import java.io.IOException;
import java.rmi.RemoteException;
import java.rmi.server.*;
public class ClientImp extends UnicastRemoteObject implements Remote{
private static final long serialVersionUID = 227L;
private Process proc;
/**
* constructor
*/
public ClientImp() throws RemoteException {
super();
}
public boolean runApp() throws RemoteException {
try {
Runtime rt = Runtime.getRuntime();
proc = rt.exec("notepad");
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
public boolean stopCurrentUtilApp() throws RemoteException {
proc.destroy();
return true;
}
public static void main(String[] args) {
client;
try {
ClientImp client = new ClientImp();
client.runUtilApp();
Thread.sleep(10000);
client.stopCurrentUtilApp();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}