我有一個基本上只有一個簡單窗口的Java SWING程序。該窗口包含一個菜單和一個JPanel。理想情況下,我想使用菜單來選擇外部jar文件(這是另一個SWING程序)並運行它。然後該jar應該在後臺執行,並在我的窗口中使用JPanel,而不是單獨創建一個新窗口。 這可能嗎?我的猜測是,我應該以某種方式「暴露」或「使」我的JPanel到外部應用程序,但我無法弄清楚我該如何做到這一點。即使是一個簡單的代碼片段,也會非常感激。非常感謝將JPanel公開給外部jar
2
A
回答
1
您將需要在自定義類加載器中加載外部Jar
,以使其可供您的應用程序運行。像URLClassLoader
應該能夠做到這一點。
您的應用程序和外部Jar應該使用可以通過的通用接口。這允許你加載外部jar,找到並加載所需的「入口」類並運行它。
這個interface
應該爲通知/回調機制(AKA一個監聽器)提供某種註冊,你可以將應用程序附加到外部「任務」上,然後外部類可以使用它來提供更改通知給你應用。
如果可能的話,你應該避免將更多的應用程序暴露給外部Jar,然後你必須。這減少了外部JAR與應用程序搞亂,或者實際上,甚至不需要關心它的風險...
您可以使用任一Observer Pattern和Producer/Consumer Pattern,根據您的需要
更多關於Observer Pattern
相關問題
- 1. 將DNN站點地圖公開給外部asp.net應用程序
- 2. 將Rails Env公開給Webpacker
- 3. 如何將碼頭集裝箱的http流量公開給外部世界
- 4. 將外部庫.jar添加到Spring引導.jar內部/ lib
- 5. 加載外部JAR
- 6. NoClassDefFoundError與外部jar
- 7. ADT20和外部JAR
- 8. 執行外部JAR
- 9. JavaFX和外部JAR
- 10. 將外部庫添加到JAR中?
- 11. 將外部jar添加到GWT
- 12. 將純類添加爲外部JAR
- 13. 將外部文件添加到jar
- 14. 將外部JAR添加到JDK
- 15. 如何將XCTestCases公開到外部測試包?
- 16. JPanel內部JPanel
- 17. WSO2將API Store公開給消費者?
- 18. 將SQL數據公開給客戶端
- 19. 將重複的UUID公開給kvm guest
- 20. 從類路徑(Jar內部)的外部程序打開文件
- 21. 外部jar /庫launch4j問題
- 22. NoClassDefFounderError外部jar文件
- 23. 蝕:爲外部JAR位置
- 24. 添加外部JAR到Openshift
- 25. OSGi中的外部類/ jar
- 26. 哪裏是「外部」JAR的?
- 27. GWT + Eclipse +外部JAR文件
- 28. 導入外部jar文件
- 29. Ant包含外部.jar
- 30. WebSphere外部Jar JNDI綁定
請看看這個[回覆](http://stackoverflow.com/a/11150286/1057230)。我希望它能幫助你在某個地方:-)下面的答案是幫助你達到預期的方向。儘管我的鏈接中的答案與情況無關,但它可以幫助您理解如何在給定項目中使用外部jar。 –