[英]Java Web Start ExtensionInstallerService - How to get hold of the install path in the application?
Java Web Start具有ExtensionInstallerService ,在安裝(和卸載)應用程序時將調用它。 它允許在由getInstallPath()
API提供的本地目錄中安裝“擴展”,其內容如下:
java.lang.String getInstallPath()
返回建議安裝程序在其中安裝擴展的目錄。不需要安裝程序在此目錄中安裝,這只是建議的路徑。
我現在想知道如何掌握正在運行的Web Start應用程序(在application-desc
JNLP元素中定義的內容)中提供的安裝路徑。
我已經檢查了應用程序正在運行的JVM的系統屬性deployment.*
那里有很多deployment.*
屬性,但沒有擴展安裝程序使用的安裝路徑。 ExtensionInstallerService
本身在正在運行的應用程序中不可用-因此無法在此處調用getInstallPath()
。
使用ServiceManager.lookup("javax.jnlp.ExtensionInstallerService")
可以訪問服務實例,然后根據需要使用其方法。
向JNLP客戶端請求具有給定名稱的服務。 查找必須是冪等的,即對於具有相同名稱的每次調用都返回相同的對象。
參數:
name
-服務的名稱來查找。返回:
實現服務的對象。
null
將永遠不會返回。 而是將引發異常。拋出:
UnavailableServiceException
如果服務不可用,或者name為null
。
我在擴展安裝程序類(JNLP element
installer-desc
)中查找ExtensionInstallerService
沒問題,但是此服務在正在運行的應用程序(JNLP elementapplication-desc
)中不可用。
,沒有意識到。 無論如何,在擴展程序安裝程序代碼中,向用戶提供安裝擴展程序的位置,然后使用PersistenceService
存儲該路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.