问题标签 [javapackager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1058 浏览

macos - 如何更改 javapackager 用于 .pkg 安装程序的图标?

在 Mac OS X 10.12 下使用javapackager,我可以生成一个.pkg文件。此包打开时包含一个通用的灰色图标,如下图所示:

在此处输入图像描述

如何将通用图标更改为我自己选择的图标之一?我目前正在使用-Bicon=....设置图标的选项,该选项适用于应用程序图标,但似乎不会更改 .pkg 文件中的图标。Oraclejavapackager.

0 投票
2 回答
938 浏览

java - 使用 Javapackager 自定义 .app 包的 Resources 目录

在 macOS 上,我使用Javapackager从我的Java 存档中制作一个Application.app包(称为磁盘映像):Application.jar

生成的Application.app包是具有以下布局的目录:

但是,我的文件系统上有一些<language>.lproj目录(其中包含InfoPlist.strings用于本地化文件的某些字符串的Info.plist文件,参见 Apple 的开发者网站)需要复制到布局的Resources目录中,如下所示:Application.app

我怎样才能告诉Javapackager这样做呢?(我不想在创建后<language>.lproj自己在Application.app包中复制目录,因为它会破坏它的签名。)

0 投票
1 回答
3155 浏览

javafx - 尝试在 java 9-ea 中使用 javapackager 打包本机映像时出错?

我正在尝试使用 java 9-ea (jdk-9+180) 和新的 javapackager 从一个简单的模块创建本机映像,但出现空指针异常。有人知道我是不是太早了,还是我没有使用正确的命令开关来让它工作?jlink 命令可以正常工作,但 javapackager 不能。在撰写本文时,我使用的是最新的 jdk-9+180。我已尝试使用-native exe-native image开关,但会出现相同类型的错误。我也在我的 Mac 上尝试了这个,用-native dmg开关创建了一个本机 dmg,但是在那个平台上发生了同样的错误。我真的很喜欢在这里使用 javapackager 来捆绑构建exe/dmg

编辑 1: 我已提交有关此问题的错误报告,现在可以在以下 url 中看到它:http ://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8186661

我的模块信息.java:

首先,我使用 javapackager 创建一个 jar,它可以正常工作:

C:\Java9Test\target>javapackager -createjar -appclass sample.Main -srcdir classes -outdir . -outfile myjar -v

我已经验证了生成的 jar 结构对于正确编译module-info.class的和其中的其他两个类看起来没问题。

以下 jlink 命令起作用并生成可运行的缩减运行时映像:

C:\Java9Test\target>jlink --output release\MyTestApp --compress=2 --module-path "myjar.jar;C:\Program Files\Java\jdk-9\jmods" --add-modules my.module

但是,当尝试以下命令以使用 javapackager 创建本机映像时失败:

C:\Java9Test\target>javapackager -deploy -v -outdir packages -name MyTestApp -native image --module-path "myjar.jar;C:\Program Files\Java\jdk-9\jmods" --add-modules my.module --module my.module/sample.Main

输出:

Running [C:\Program Files\Java\jdk-9\bin\java.exe, -version] Creating app bundle: MyTestApp in C:\Java9Test\target\packages Exception: java.lang.NullPointerException Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "Windows Application Image" (windows.app) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)

编辑2:

-native exe标志的输出(在 Windows 上)

Running [C:\Program Files\Java\jdk-9\bin\java.exe, -version] Running [C:\Program Files (x86)\Inno Setup 5\iscc.exe, /?] Detected [C:\Program Files (x86)\Inno Setup 5\iscc.exe] version [5] At least one type of shortcut is required. Enabling menu shortcut. Exception: java.lang.NullPointerException Config files are saved to C:\Users\Username\AppData\Local\Temp\fxbundler17330843784617821035\windows. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "EXE Installer" (exe) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)

编辑3:

-native dmg标志的输出(在 MacOSX 上)

Building DMG package for MyTestApp Exception: java.lang.NullPointerException Config files are saved to /var/folders/qs/nk3vxsx90q9_pbjs0ypg74r40000gn/T/fxbundler3765252041328710759/macosx. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DMG Installer" (dmg) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)

-native deb标志的输出(在 Linux Mint 上)

Running [dpkg-deb, --version] Debian packages should specify a license. The absence of a license will cause some linux distributions to complain about the quality of the application. Exception: java.lang.NullPointerException Config files are saved to /tmp/fxbundler2941553392593775128/linux. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DEB Installer" (deb) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)

-native rpm标志的输出(在 Linux Mint 上)

Running [rpmbuild, --version] At least one type of shortcut is required. Enabling menu shortcut. Exception: java.lang.NullPointerException Config files are saved to /tmp/fxbundler2278571164448075269/linux. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "RPM Bundle" (rpm) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:374) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)

0 投票
1 回答
1532 浏览

java - macOS High Sierra 上的 javapackager 找不到 icns 文件错误

我刚刚安装了macOS High Sierra (10.13),并正在尝试更新我编写的教程,该教程展示了如何将 Java Swing 应用程序(可执行 JAR)打包到 macOS 安装程序中。

本教程的步骤在macOS Serra (10.12)上运行良好。

现在javapackager命令崩溃了:

错误:找不到文件。(-43) 存档:/var/folders/c1/hkb.../images/ShowTime/.VolumeIcon.icns

系统信息:

重现的简化步骤:

完整错误:

完整教程和步骤: Mac Java!| 命令.txt

无论我是否提供图标文件,都会发生错误。关于如何解决它的任何想法?

0 投票
2 回答
697 浏览

java - 如何为使用 javapackager 创建的可执行文件指定类路径?

Java 8 中的javapackager命令能够创建独立的可执行文件。网上的例子一般只使用一个jar文件,但我有几个jar文件需要捆绑到应用程序中。文档指出,可以告诉捆绑器classPath=path通过-B选项发送的类路径。但是,在<applicationname>.cfg打包应用程序内的结果文件中有一行说

这完全不受 classPath 参数的影响,但我必须手动编辑它以包含应用程序使用的所有 jar 以使其工作。

所有这些都在 macOS 上,我还不能在其他平台上尝试。

非常感谢任何见解——例如,一个使用多个罐子的工作示例。

0 投票
2 回答
1435 浏览

java - 限制 javapackager 添加的模块

我试图通过限制它包含的模块来减小我的应用程序的大小。我已经为我的运行时使用jlink. 但是,当我javapackager使用--add-modulesand--limit-modules选项和逗号分隔的一组我用于运行时的相同模块的列表运行时,它仍然坚持添加所有模块。它似乎不想尊重我给它的选择。如何获得该工具来限制它添加到我的应用程序包中的模块?

这是我运行的命令,替换了一些用户名之类的内容:

0 投票
2 回答
1945 浏览

java - 如何使用 javapackager 查找自动模块

我正在捆绑一个应用程序,javapackager其中主 jar 是具有 module-info.class 的模块,但它依赖于许多其他普通的 jar,因此我将它们称为 module-info.java 中的自动模块。但是,javapackager抱怨找不到他们。如何让它找到自动模块的 jar 文件?

我尝试指定模块路径(第一个目录只有主模块 jar,第二个目录有所有非模块 jar):

0 投票
2 回答
1140 浏览

java - 带有 jlink 压缩标签的 Java9 打包器

当我们创建 jlink 运行时映像时,我们可以使用诸如 '--strip-debug'、'--compress'、'2'、'--no-header-files'、'--no-man-pages' 之类的标签,创建一个大约 45mb 的分发文件夹。

如果我们想使用 javapackager,例如创建一个 .DMG 文件,我们如何进行类似的压缩?因为这些标签不适用于 javapackager。没有它们,最终的包大约是 100mb,失去了很多 java9 模块化的优势,所以我的问题是是否可以将 javapackager 与 jlink 创建的 JRE 运行时映像一起使用。

谢谢

0 投票
1 回答
1031 浏览

java - 使用 javapackager 构建 pkg 时如何授予写入 Application 文件夹的权限

我使用 javapackager 工具从 .jar 文件构建了一个 .pkg。它运行良好,JRE 和我的 .jar 都已安装,程序按应有的方式启动。该程序安装在 Application 文件夹中(当然是在 Mac 上)并且运行良好。但它没有创建文件的写入权限(在应用程序文件夹中)。

如果我在我的应用程序文件夹上运行 chmod -R 777 一切正常。

那么我怎样才能将安装文件夹中的写入权限授予 .jar 呢?使用 javapackager(因为我不希望我的用户必须运行命令)。

非常感谢

0 投票
1 回答
193 浏览

javafx - 如何使用 javapackager 在 Windows 上为 javafx 本机包图标设置自定义图标

我尝试使用 javapackager 命令使用 -Bicon 参数设置图标,但没有运气。如果我没有给出任何参数,那么它会显示类似这样的消息“将包/windows/添加到要自定义的类路径”。我应该在哪里添加 .ico 文件以使用自定义 .ico 文件而不是默认文件。下面是我从 oracle 使用的示例命令