2012-06-12 158 views
2

我已將jre文件嵌入到我的應用程序設置中,我可以使用java.exe來執行一些java特定任務。在windows操作系統上啓動jarsigner.exe,其中jdk/jre未由安裝程序安裝

,我想用jarsigner.exe但是當我推出的jarsigner,它會檢查一些註冊表項,並不能發現(因爲JRE不是由JRE設置insatalled)他們,並給出錯誤。

我怎麼能指定的jarsigner

java.exe的路徑,以便它應該使用的java.exe,我點的不是檢查註冊表中。

錯誤日誌:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment

Error: could not find java.dll

Error: could not find Java SE Runtime Environment

我不知道是那裏的jarsigner任何額外的參數可能是定義JAVA_HOME目錄,或其他任何定義了的java.exe是存在的。

+0

「我已將jre文件嵌入到我的應用程序設置中」。很明顯,您需要將一些* JDK *文件嵌入到您的應用程序設置中,顯然您應該使用JDK自己的安裝程序來執行此操作。 – EJP

+2

@EJP:是的,我實際上在應用程序設置中添加了一些jdk文件(jli.dll,msvcr71.dll和tools.jar)到應用程序安裝程序,這些在jre安裝但未安裝jdk的系統上工作正常。 – tutalia

回答

0

Java Error opening registry key

被盜如有刪除。

32位機

的java.exe,javaw.exe的和javaws.exe上

從64位機

從Windows \ SysWOW64中刪除您的Windows \ System32文件夾

+0

我不能這樣做,jre/jdk將被安裝或不。我想從我的jarsigner.exe使用jre我提供。 – tutalia

2

沒有特定的命令行參數,但在調用jarsigner時,仍然可以將java.home屬性設置爲指向與應用程序捆綁在一起的所需JRE。

例如,你可以調用jarsigner有兩種:

  • ProcessBuilder並設置java.home屬性,
  • Runtime.exec()允許設置envp環境變量的變體,
  • 或批處理/ shell腳本並在其中設置JAVA_HOME屬性。
+0

感謝您的回答。我使用C++來調用jarsigner.exe。我試圖用批處理文件做,BU有相同的錯誤。 – tutalia

+0

批處理文件內容:設置JAVA_HOME = 「C:\ JRE6 \」 jarsigner.exe 暫停 – tutalia

1

使jarsigner與JRE而不是JDK一起工作。需要從JDK

JRE中捆綁這些文件從\ BIN \ jarsigner.exe到\ BIN \ jarsigner.exe 從\ BIN \ msvcr100.dll到\ BIN \ msvcr100.dll 從\ BIN \ jli.dll到\ bin \ jli.dll 從\ lib \ tool.jar到\ lib \ tool.jar 我對此進行了測試,發現它適合我。

+0

我只是需要\ BIN \ jarsigner.exe和\ LIB \ tool.jar。確保它們來自與安裝的JRE相同版本的SDK,否則會出現版本錯誤。 – Dunc

相關問題