參考資料:
問題(一)、JNLP Property 設定無法傳遞
過去在 JNLP 可以直接使用 Property 設定。
<resources>
<property name="config1.name" value="value1" />
Java7u45 只允許「javaws.」與「jnlp.」起始命名的設定,以及以下的例外。
sun.java2d.noddraw, swing.useSystemFontSettings, swing.metalTheme, http.agent, http.keepAlive, sun.awt.noerasebackground, sun.java2d.opengl, sun.java2d.d3d, java.awt.syncLWRequests, java.awt.Window.locationByPlatform, sun.awt.erasebackgroundonresize, swing.noxp, swing.boldMetal, awt.useSystemAAFontSettings, sun.java2d.dpiaware, sun.awt.disableMixing, sun.lang.ClassLoader.allowArraySyntax
所以 JNLP 的 Property 設定必須全部更改為:
<property name="javaws.config1.name" value="value1" />
或:
<property name="jnlp.config1.name" value="value1" />
當然在其它程式碼存取 Sytstem.getProperty() 的參數也要一併修改。
問題(二)、Missing manifest attributes
打包 JAR 檔案時,需要增加以下 MANIFEST 屬性設定。
'Permissions' : 'all-permissions',
'Codebase' : 'http://url-to-codebase',
'Application-Name' : 'AppName'
參考討論串:
http://stackoverflow.com/questions/19451356/whats-with-the-new-jnlp-missing-items-warnings-in-java-7
問題(三)、應用程式已被安全設定值封鎖
JAR 檔 MANIFEST 的 Codebase attribute 必須與 JNLP 指定的 JAR URL 來源一致,如果 javaws 發現實際下載 JAR 檔案的 URL 與 MANIFEST 設定不同,就會直接阻擋掉不能執行。
沒有留言:
張貼留言