1
我有一個工作的RMI服務器程序,我可以編譯並直接從.class文件執行。可執行RMI JAR文件的ClassNotFoundException存根
但是,當我試圖爲每個這些程序創建一個JAR文件時,我得到一個ClassNotFoundException: ChatImpl_Stub
導致RemoteException
執行。
我的清單是(加在最後一個空行):
Main-Class: Server
Class-Path: chat-RMI-common.jar
當聊天RMI-常見的是含有聊天界面爲客戶端的JAR文件。
我成功創建與JAR:
jar cvmf ..\MANIFEST.MF chat-RMI-server.jar *.class
服務器JAR確實含有ChatImpl_Stub。然而除了顯示出來,當我嘗試啓動JAR文件:
java -Djava.rmi.server.codebase="file:chat-RMI-common.jar file:chat-RMI-server.jar"
-Djava.security.policy=..\security.policy
-jar chat-RMI-server.jar
當Naming.rebind
功能,涉及ChatImpl,被稱爲(在程序開始)出現的異常。
我的安全策略:
grant {
permission java.security.AllPermission;
}
什麼我忘了還是?在此先感謝您的時間。
它現在,我選擇了懶惰的選項(createRegistry()),謝謝。任何想法如何我可以在清單中嵌入java.codebase和java.security.policy選項,而不是使用腳本來運行JAR? PS:我會接受你的答案,只是想先試後1米或2的東西;) – Vulpo
你不能嵌入其中的任意一種東西放到清單,但你可以將它們設置爲系統屬性的第一件事就是你的main()。你可以看看使用JWS,它允許你將系統屬性嵌入到XML文件中。 – EJP
我得到其所需的註冊類 – fanky