2014-10-01 45 views
0

我一直在嘗試重新構建Jitsi源代碼到WIN X86 .exe,它一直在爲我工作得很好,但我面臨的問題是什麼時候我要在任何PC上運行安裝程序它對我說enter image description hereJitsi安裝程序丟失.dlls

如果我把dll與安裝程序放在同一個文件夾中沒有編譯進去,它會安裝正常,沒有問題或錯誤。

我不是Java專家漂亮的新手我只是改變了一些窗口的顏色。

我希望有人可以告訴我如何將其編譯到安裝程序或改變一些東西,使其工作,而不是給我這個錯誤。 這並不是唯一的.Dll中則缺少缺失是

  • libbz2-2.dll
  • libgcc_s_dw2-1.dll
  • liblzma-5.dll
+0

你如何建立你的安裝程序?它是用Java還是C++編寫的?它真的使用Windows Installer,一個擴展名爲.msi的文件嗎? – 2014-10-01 17:35:27

+0

對不起,它建立一個使用Java的安裝程序,我認爲,有一個build.xml文件,用於創建所有的Jars,然後用它可以構建安裝程序相同的文件,它建立的安裝程序是一個.EXE的x86,但我很確定我可以創建一個.msi – Matthew 2014-10-02 00:16:06

+0

建築的build.xml表示Apache Ant用於構建產品。當然,Ant由Java運行,但您可以使用Ant構建本機可執行文件。所以你應該在'build.xml'的某個地方更改構建選項中的鏈接器選項,以便使用*靜態鏈接*庫而不是* dynamic *構建.EXE。 – 2014-10-02 08:13:49

回答

0

通過的那些默認情況下,您必須在Windows的System32文件夾中包含這些庫。在Java應用程序中,您可以使用-Djava.library.path參數從不同位置加載DLL。例如:

java.exe -Djava.library.path="c:\\dlls" something.jar 

使JVM從c:\ dlls文件夾加載DLL。

+0

將應用程序DLL放入系統目錄現在已經很長時間了。 – 2014-10-01 17:41:14

0

您的安裝程序依賴於這些DLL,並且它們必須與安裝程序.exe一起位於當前目錄中。

通常安裝程序不需要額外的DLL,您可以重新編譯安裝程序,以便它可以靜態連接到指向所需的庫(包括C/C++運行時庫)。

0

檢查答案,Installer for Jitsi SIP Communicator和修改bat文件下面的內容:

set JAVA_HOME=<Your Java Home> 
set PATH=%JAVA_HOME%\bin;<ApacheBinPath>;c:\mingw\bin;c:\MinGW\msys\1.0\bin;c:\Program Files (x86)\WiX Toolset v3.10 

set ANT_HOME=<Ant Home> 
set BZ2_HOME=altel\src\native\windows\setup 
set LZMA_HOME=c:\mingw\xz 
set MINGW_HOME=c:\mingw 
start /B /LOW /WAIT ant build-installation-wix 

它爲我

+0

建議擴展以解釋爲什麼以及如何幫助。 – user4581301 2016-05-25 21:02:31