问题标签 [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.
macos - 如何更改 javapackager 用于 .pkg 安装程序的图标?
在 Mac OS X 10.12 下使用javapackager
,我可以生成一个.pkg
文件。此包打开时包含一个通用的灰色图标,如下图所示:
如何将通用图标更改为我自己选择的图标之一?我目前正在使用-Bicon=....
设置图标的选项,该选项适用于应用程序图标,但似乎不会更改 .pkg 文件中的图标。Oracle的javapackager
.
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
包中复制目录,因为它会破坏它的签名。)
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)
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
系统信息:
重现的简化步骤:
完整错误:
无论我是否提供图标文件,都会发生错误。关于如何解决它的任何想法?
java - 如何为使用 javapackager 创建的可执行文件指定类路径?
Java 8 中的javapackager
命令能够创建独立的可执行文件。网上的例子一般只使用一个jar文件,但我有几个jar文件需要捆绑到应用程序中。文档指出,可以告诉捆绑器classPath=path
通过-B
选项发送的类路径。但是,在<applicationname>.cfg
打包应用程序内的结果文件中有一行说
这完全不受 classPath 参数的影响,但我必须手动编辑它以包含应用程序使用的所有 jar 以使其工作。
所有这些都在 macOS 上,我还不能在其他平台上尝试。
非常感谢任何见解——例如,一个使用多个罐子的工作示例。
java - 限制 javapackager 添加的模块
我试图通过限制它包含的模块来减小我的应用程序的大小。我已经为我的运行时使用jlink
. 但是,当我javapackager
使用--add-modules
and--limit-modules
选项和逗号分隔的一组我用于运行时的相同模块的列表运行时,它仍然坚持添加所有模块。它似乎不想尊重我给它的选择。如何获得该工具来限制它添加到我的应用程序包中的模块?
这是我运行的命令,替换了一些用户名之类的内容:
java - 如何使用 javapackager 查找自动模块
我正在捆绑一个应用程序,javapackager
其中主 jar 是具有 module-info.class 的模块,但它依赖于许多其他普通的 jar,因此我将它们称为 module-info.java 中的自动模块。但是,javapackager
抱怨找不到他们。如何让它找到自动模块的 jar 文件?
我尝试指定模块路径(第一个目录只有主模块 jar,第二个目录有所有非模块 jar):
java - 带有 jlink 压缩标签的 Java9 打包器
当我们创建 jlink 运行时映像时,我们可以使用诸如 '--strip-debug'、'--compress'、'2'、'--no-header-files'、'--no-man-pages' 之类的标签,创建一个大约 45mb 的分发文件夹。
如果我们想使用 javapackager,例如创建一个 .DMG 文件,我们如何进行类似的压缩?因为这些标签不适用于 javapackager。没有它们,最终的包大约是 100mb,失去了很多 java9 模块化的优势,所以我的问题是是否可以将 javapackager 与 jlink 创建的 JRE 运行时映像一起使用。
谢谢
java - 使用 javapackager 构建 pkg 时如何授予写入 Application 文件夹的权限
我使用 javapackager 工具从 .jar 文件构建了一个 .pkg。它运行良好,JRE 和我的 .jar 都已安装,程序按应有的方式启动。该程序安装在 Application 文件夹中(当然是在 Mac 上)并且运行良好。但它没有创建文件的写入权限(在应用程序文件夹中)。
如果我在我的应用程序文件夹上运行 chmod -R 777 一切正常。
那么我怎样才能将安装文件夹中的写入权限授予 .jar 呢?使用 javapackager(因为我不希望我的用户必须运行命令)。
非常感谢
javafx - 如何使用 javapackager 在 Windows 上为 javafx 本机包图标设置自定义图标
我尝试使用 javapackager 命令使用 -Bicon 参数设置图标,但没有运气。如果我没有给出任何参数,那么它会显示类似这样的消息“将包/windows/添加到要自定义的类路径”。我应该在哪里添加 .ico 文件以使用自定义 .ico 文件而不是默认文件。下面是我从 oracle 使用的示例命令