程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 如何在 Java 程序中釋放 RMI 端口

如何在 Java 程序中釋放 RMI 端口

編輯:關於JAVA
 

通過 LocateRegistry.createRegistry(port) 創建了一個 rmiregistry 監聽 port 所在端口,

如果想要在程序中把這個端口關閉,也就是關閉 RMI registry 服務,可以參考以下的代碼。

注:似乎在2003年的時候,這個方法還行不通,到了 JDK6 的版本才解決這個問題的。

參考 Sun bug 4457683, bug 4508962, 以及 這個 mail archive。

 

import java.rmi.NoSuchObjectException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

public class RMITest {

public void testRMIPortRelease() {
System.out.println("Testing port release");

System.out.println("Acquiring port... ");
Remote reg = null;
try {
reg = LocateRegistry.createRegistry(1102);
} catch (RemoteException ex) {
ex.printStackTrace();
}

System.out.println("releasing port... ");
try {
java.rmi.server.UnicastRemoteObject.unexportObject(reg, true);
} catch (NoSuchObjectException ex1) {
ex1.printStackTrace();
}
reg = null;
}

public static void main(String[] args) {
RMITest s = new RMITest();
s.testRMIPortRelease();
}
}

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved