2014-11-25 18 views
0

我想將我的java應用程序打包爲Debian軟件包。我使用NetBeans對德布 - 軟件包Netbeans ubuntu上的活動包裝 - 找不到dpkg

集結在原生打包(8.0.1)繼包裝後輸出: 執行失敗:產生java.io.IOException:不能運行程序「命令」(目錄

"/home/testuser/Songs"): error=2, No such file or directory /home/testuser/Songs/nbproject/jfx-impl.xml:3415: The following error occurred while executing this line: /home/testuser/Songs/nbproject/jfx-impl.xml:3584: Error: JavaFX native packager requires Debian Packager tools to create DEB package, but dpkg could not be found. BUILD FAILED (total time: 1 second)

我已經安裝了dpkg-dev的用apt-get處理。$ PATH變量包含在/ usr/bin中

我不知道如何解決這個問題。任何人有一個想法,爲什麼NetBeans的不找到dpkg?

回答

2

我解決了覆蓋nbproject/jfx-impl.xml中的目標-check-dpkg-presence定義的問題。

原始目標在項目文件夾中查找「命令」文件。 該行檢查dpkg的真實路徑。 運行命令-v dpkg你會得到/ usr/bin/dpkg。

這是你得到同樣的beavoiur如果您嘗試行

其中的dpkg ==>在/ usr/bin中/ dpkg的

所以我這樣做,由build.xml

<target name="-check-dpkg-presence" depends="-check-native-bundling-type" if="need.dpkg.presence"> 
     <local name="exec.which.dpkg.result"/> 
     <local name="exec.which.dpkg.output"/> 
     <exec executable="which" failifexecutionfails="false" failonerror="false" resultproperty="exec.which.dpkg.result" outputproperty="exec.which.dpkg.output"> 
      <arg line="dpkg"/> 
     </exec> 
     <condition property="missing.dpkg"> 
      <not><and> 
       <isset property="exec.which.dpkg.result"/> 
       <equals arg1="${exec.which.dpkg.result}" arg2="0"/> 
       <isset property="exec.which.dpkg.output"/> 
       <not><equals arg1="${exec.which.dpkg.output}" arg2=""/></not> 
      </and></not> 
     </condition> 
    </target> 

我改變了屬性(executable ='which')和arg標籤的行屬性。

它的工作原理。

1

如果您嘗試運行ant -v build-native在你的項目目錄中,你會看到錯誤。由NetBeans創建的ant構建腳本嘗試運行command dpkg ...來構建軟件包,但由於「command」是/ bin/bash中的內置shell命令,因此PATH中的「command」測試失敗。

我創造了我的本地路徑命名「命令」這個shell腳本:

#!/bin/bash 
command [email protected] 

工作正常。

+0

這對我來說也很好。儘管如此,大約一年之後,人們會認爲甲骨文如果不能解決問題,請將其記錄在自述文件中。 – 2015-12-28 14:44:54

+0

你能解釋一下當地的方法嗎? – 2016-07-04 14:26:28