2014-02-18 37 views
2

我在簽署JavaFX應用程序時遇到問題。我使用的Ant任務指定here從javafx ant任務簽名jar不會與jarsigner驗證

<fx:signjar destdir="${project.build.directory}/signed" verbose="true" keyStore="keystore/MyKey.p12" 
      storePass="mypass" storeType="pkcs12" alias="myalias" keyPass="mypass"> 
     <fileset dir="${project.build.directory}" includes="${myApp.name}.jar"/> 
    </fx:signjar> 

然而,當我在簽名的jar運行的jarsigner -verify,它說 罐子是無符號。 (簽名缺失或不可解析)。

打開它,我看到一個文件META-INF/SIGNATURE.BSF,但我相信的jarsigner期待:

  • 的簽名文件,具有.SF擴展名,
  • 簽名塊文件,帶有.DSA,.RSA或.EC擴展名。

那麼,JavaFX標誌任務是不是創建一個正確簽名的jar? BSF(Blob簽名格式?)是我的jarsigner無法正確處理的新格式?

回答

1

我有同樣的問題(雖然我使用maven/javafx-maven-plugin;應該沒有區別)。目前FX構建工具簽名似乎已經中斷,因爲正如您注意到的那樣,jarsigner不承認jar已簽名的事實,運行已部署的應用程序時webstart啓動器也沒有。

我在構建腳本中使用單獨的插件(maven-jarsigner)簽署了我的JavaFX應用程序罐。

我想象你可以使用Ant的SignJar類似。

另請參閱此JavaFX JIRA issue,它目前設置爲將不會修復

+2

它可能是一個老問題/答案,但僅用於記錄:JIRA問題現在設置爲「不會修復」,因爲blob簽名從Java 9中刪除。由於我是維護者那個javafx-maven-plugin,我會改變jar的簽名方式,由[issue 190](https://github.com/javafx-maven-plugin/javafx-maven-plugin/issues/190)跟蹤JavaFX的Maven的插件。 – FibreFoX