2016-05-13 148 views
2

我們正在開發一個使用Java Web Start的應用程序。如何強制Java Web Start運行自簽名的JNLP?

當我嘗試啓動我的JNLP文件,我得到這樣的警告: Java Application Blocked

「位置」(http://<IP>:port)已添加到例外站點列表。我會認爲這本身就足以使JNLP運行。

不過,我也做下的 「高級」 以下內容:

我只有一個Java版本 - 這就是Java 1.8.0_91 32位。

我還需要做些什麼來使我的JNLP運行?

+0

添加異常應該足夠了。我不認爲你需要那裏的港口。你怎麼稱呼javaws? 'javaws http:// ip/xxx.jnlp'? – assylias

+0

您是否檢查過該例外已添加到列表中(在%USERPROFILE%\ AppData \ LocalLow \ Sun \ Java \ Deployment \ security \ exception.sites中)?你是否在'http:// xxx'或文件:// xxx或映射的驅動器上調用javaws? – assylias

回答

0

問題是清單中缺少權限屬性,因此在Java 1.8中未經警告就被阻止。如果運行Java 1.7,則會出現此警告。

0

Java安全性是一個有趣的小事情,必須摔跤。

將您的JavaWS應用程序的網站添加到Java安全例外列表中。你說你已經這麼做了,但是你是否還標記了你的JNLP文件以指明它來自哪個站點?

從本質上講,jnlp文件只是一個XML文件,除非它說明它來自哪裏,否則java可能無法確定它是否來自受信任的站點。

在JNLP中是否有類似這樣的標籤?

<jnlp href="someWebstartApp.jnlp" spec="1.0+" codebase="http://myserver.com/" xmlns:jfx="http://javafx.com"> 

具體而言,在href(名稱爲在基本代碼jnlp文件)和基本代碼(其中jnlp文件和罐子可以找到)的位。

或者,你可以嘗試直接在命令行中調用的javaws:

javaws http:/myserver.com/someWebstartApp.jnlp 

這將讓Java的搶JNLP文件本身,而不是瀏覽器的啓動過程可能無法告訴Java的哪個網址jnlp來自。

相關問題