ubentu上的Netbeans活动包装 - 未找到dpkg

时间:2014-11-25 15:00:16

标签: java netbeans packaging ubuntu-14.04 dpkg

我想将我的java应用程序打包为Debian包。我正在使用netbeans(8.0.1)的内置本地打包器用于Deb-Packages

包装后输出: 执行失败:java.io.IOException:无法运行程序“command”(在目录

中)
  

“/ home / testuser / Songs”):error = 2,没有这样的文件或目录   /home/testuser/Songs/nbproject/jfx-impl.xml:3415:执行此行时发生以下错误:   /home/testuser/Songs/nbproject/jfx-impl.xml:3584:错误:   JavaFX本机打包程序需要Debian Packager工具来创建DEB包,但找不到dpkg。   建筑失败(总时间:1秒)

我已经使用apt-get安装了dpkg-dev。 $ PATH变量包含/ usr / bin

我不知道如何解决这个问题。任何人都知道为什么netbeans找不到dpkg?

2 个答案:

答案 0 :(得分:3)

我解决了在nbproject / jfx-impl.xml中覆盖目标-check-dpkg-presence定义的问题。

原始目标查找"命令"文件在项目文件夹中。 该行检查dpkg的实际路径。 运行命令-v dpkg,你得到/ usr / bin / dpkg。

如果您尝试使用

,这是相同的beavoiur

其中dpkg ==>的/ usr /斌/ 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 =&#39;其中&#39;)和arg标记的line属性。

它有效。

答案 1 :(得分:1)

如果您尝试在项目目录中运行ant -v build-native,则会看到错误。 NetBeans创建的ant构建脚本正在尝试运行command dpkg ...来构建程序包,但是因为&#34;命令&#34;是/ bin / bash中的内置shell命令,测试&#34;命令&#34;你的PATH失败了。

我创建了一个名为&#34;命令&#34;的shell脚本。在我的本地路径中:

#!/bin/bash
command $@

工作正常。