Netbeans 在 ubuntu 上的活动打包 - 未找到 dpkg



我想将我的 Java 应用程序打包为 Debian 软件包。我正在使用 Netbeans(8.0.1) 的内置本机打包程序来执行 Deb-Packages

打包后输出如下:执行失败:java.io.IOException:无法运行程序"命令"(在目录中)

"/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?

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

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

这与你尝试这条线得到的是一样的

哪个 dpkg ==>/usr/bin/dpkg

所以我在构建中这样做.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>

我更改了 arg 标签的属性(可执行文件='哪个')和行属性。

它有效。

如果您尝试在项目目录中运行ant -v build-native,您将看到错误。NetBeans 创建的 ant 构建脚本正在尝试运行command dpkg ...来构建包,但由于"command"是/bin/bash 中的内置 shell 命令,因此 PATH 中对"command"的测试失败。

我在本地路径中创建了一个名为"command"的 shell 脚本:

#!/bin/bash
command $@

这工作正常。

相关内容

  • 没有找到相关文章

最新更新