2012-03-02 35 views
0

我該如何解決這個錯誤?我有我的網絡服務器中包含的所有jar文件的部署dist。但是,一旦我按了icon.jnlp它說錯誤。JNLP - 我如何部署我的運行應用程序並創建啓動a.jar的桌面圖標?

icon.jnlp:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<jnlp codebase="http://localhost:007/dist" href="icon.jnlp" spec="1.0+"> 
    <information> 
    <title>Sample</title> 
    <vendor>Sample</vendor> 
    <homepage href=""/> 
    <description>Sample</description> 
    <description kind="short">Sample</description> 

    <icon href="load.png" kind="splash"/> 
    <icon href="logo.png" kind="default"/> 

    <shortcut online="false"> 
     <desktop/> 
     <menu submenu="Sample"> 
      <menu submenu="Sample Managing System"/> 
     </menu> 
    </shortcut> 
    <offline-allowed/> 
    </information> 

    <security> 
    <all-permissions/> 
    </security> 

    <resources> 
    <j2se version="1.5+"/> 
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/> 
    </resources> 

    <application-desc main-class="main.main"> 
    </application-desc> 

</jnlp> 

enter image description here

追問:在Linux中

1)下載JAR設備(工作時,Windows)

enter image description here

  • 所有第三方罐子
  • 您的部署罐子

  • 輸出目錄:/ var/tmp中/項目/ DIST

  • 去JAR簽名者標籤

    • 輸入jar文件:a.jar
      • 的jarsigner位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/jarsigner
      • 密鑰庫文件
      • 如果沒有創建密鑰>單擊生成密鑰庫 - keytool的位置:在/ usr /lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/keytool - 輸出密鑰庫文件:/ var/tmp/keystore - 密鑰庫別名:rememberthisname - 公鑰:123456 - 私鑰:123456 - 有效日期:0表示6個月 - 密鑰庫標識 - 有效信息... - 按生成密鑰庫 - 它將創建/ var/tmp/keyst礦石和java.key.public和java.key
    • 密鑰庫認證

      • 密鑰庫別名:rememberthisname
      • 公鑰:123456
      • 私鑰:123456
    • 點擊登錄JAR! >會告訴我們,如果失敗或成功

重複此過程,對於所有其他JAR文件簽字!

2)部署到着陸空間

3)確保你有你的所有第三方引用

前:

<resources> 
    <j2se version="1.5+"/> 
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/> 
    </resources> 

後:

<resources> 
    <j2se version="1.5+"/> 
    <jar eager="true" href="a.jar" main="true"/> 
    <jar eager="true" href="lib/b.jar" main="flas"/> 
    <jar eager="true" href="lib/c.jar" main="flas"/> 
    <jar eager="true" href="lib/d.jar" main="flas"/> 
    <jar eager="true" href="lib/e.jar" main="flas"/> 
    <jar eager="true" href="lib/f.jar" main="flas"/> 
    <jar eager="true" href="lib/g.jar" main="flas"/> 
    <jar eager="true" href="lib/h.jar" main="flas"/> 
    <jar eager="true" href="lib/i.jar" main="flas"/> 
    </resources> 
+1

該屏幕截圖沒有用處,我可以看到。點擊細節按鈕,它會彈出一個對話框,其中有標籤。複製/粘貼每個標籤中的*文本*作爲對您問題的編輯。此外,請務必使用[JaNeLA](http://pscode.org/janela/)檢查JNLP。 – 2012-03-02 11:32:53

+0

@AndrewThompson:偉大的工具:)我發現了問題,我改變了路徑,並解決了然後我發現未解決的問題。但我的應用程序使用外部其他jar文件。他們現在沒有工作。 Myjar.jar正在處理您的提示。但是Myjar.jar使用的其他包裝器像Other1.jar Others2.jar,當我啓動Myjar.jar時,功能不起作用。 – YumYumYum 2012-03-02 11:47:54

+0

我現在還必須簽署我的所有其他第三方罐子嗎?如果它通過JNLP啓動? – YumYumYum 2012-03-02 11:48:16

回答

2

要務必使用JaNeLA檢查JNLP。

我是否必須現在簽署我的所有其他第三方罐子?

這取決於它們是如何部署的。如果它們處於分機中,則分機可以具有不同的安全級別。如果安全級別是沙箱,Jars不需要簽名。

但是,那麼你可能會面臨'混合簽署&無符號資源的警告。我不確定它是否適用於擴展。圍繞這些警告有很多方法,但我認爲部署所有已簽名的Jars比較簡單,不管它們所使用的擴展名的安全級別如何。

+0

首先我做了所有的jar部署本地系統,但都失敗了。然後我簽署了所有的罐子並部署到本地系統,但仍然失敗。現在我不知道如何解決它。 Myjar.jar很好地推出。但第三方罐子沒有被裝入。 – YumYumYum 2012-03-02 12:05:30

+0

YumYumYum 2012-03-02 12:07:01

+1

爲了簡單起見,列出JNLP中的所有Jars。請注意,通過「擴展」,我的意思是從主JNLP引用的其他JNLP文件。但是讓我們暫時保持簡單,並在單行jar元素中列出主JNLP中的每個Jar。只有一個jar應該被標記爲'main =「true」'通過[JWS info。 (http://stackoverflow.com/tags/java-web-start/info),他們提供了有關JNLP文件的含義以及它如何工作的詳細信息。 – 2012-03-02 12:21:55

相關問題