我正在開發基於CVM PhoneME VM的嵌入式平臺的應用程序管理器。 VM由配置CVM的C++應用程序啓動,然後觸發VM本身。這個C++應用程序是通過傳遞java應用程序的主類名和類路徑的命令行來調用的。有一個主要的Java應用程序(讓我們稱之爲管理器),它使用類加載器加載應用程序。我希望這個管理器是一個單一實例應用程序,因此它可以跟蹤所有正在運行的應用換句話說:我第一次啓動一個應用程序(例如app1)時,虛擬機將啓動並且管理器將加載app1。在進一步調用加載其他應用程序(app2,app3等)時,Manager的同一實例將加載這些應用程序。如何在java中實現單個實例應用程序管理器(CVM PhoneME)?
經理工作正常,但事實並非如此。
是否有可能做我想要的東西?
這幾乎是一樣的我想,除了應用程序加載的一部分。但是,必需的軟件包在CVM實施中不可用。
感謝您的回答。 該解決方案看起來不錯。我會設法嘗試它。 您認爲可以從JVM執行從C++到應用程序運行實例的JNI調用嗎?我相信它可以很好地解決問題,但是我不習慣JNI。 謝謝。 – Marcus 2010-05-21 13:22:30
@Marcus:其他人可以對此發表評論;我從來沒有機會使用JNI。但是我對它的一般理解是,JNI調用是另一個方向:所以Java可以調用本地代碼;通常不是相反的方式。 – 2010-05-21 13:57:34
可以從C++到Java進行JNI調用。我在過去的幾天研究了這一點。主要的問題是不可能將一個不同的進程附加到以前創建的虛擬機上(至少我找不到方法,你知道它是否有可能嗎?)。 我現在的解決方案是讓VM守護進程守護進程。我打算使用IPC(InterProccess Comunication)調用來通知守護程序的新應用程序。這個人將會設法在正在運行的虛擬機中進行JNI調用。我只是要確定我要使用哪個IPC的選項。我的選擇是DBUS,但它可能會改變。 – Marcus 2010-05-23 14:53:58