问题标签 [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 回答
1365 浏览

javapackager - 可以使用 javapackager 部署 jlinked 运行时吗?

Java SE 部署指南/自包含应用程序打包javapackager中的示例 2-1 上面的说明指出 -deploy 命令中需要一个 jar 文件。

如果我使用模块化 jar,我会收到以下错误消息:

异常:java.lang.Exception:错误:srcfiles 中不允许使用模块:[dist\tcdmod.jar]。

如果我使用等效的非模块化 jar,则生成的包包括完整的运行时。但我想使用 /dist 文件夹中的 jlink 减少的运行时间。

javapackager 命令可以使用 jlink 生成的运行时部署吗?如何?

标题为“自定义 JRE”的部分没有提及该javapackager命令。

以下部分“模块化应用程序打包”具有以下行:

使用 Java Packager 工具来打包模块化应用程序以及非模块化应用程序。

Java Packager 工具与javapackager? 本节没有使用示例javapackager

这是我使用的 javapacker 命令:

javapackager 文档中的说明没有提及使用 jlink 运行时的场景。有一个 Bundler 参数 -Bruntime 但它仅用于指向已安装的运行时,而不是系统默认值 AFAIK。

0 投票
0 回答
434 浏览

java - 在 8u171/172 上使用 javapackager 创建的本机包包含更多文件

我运行以下命令来为 .jar 文件创建本机包:

javapackager.exe -deploy -native image -srcfiles <files> -appclass <class> -outdir out -outfile test

使用 Java 8u171/172 的bundles/AppName/文件夹(包含用于启动 Java 应用程序的 .exe 和其他一些东西)包含以下 DLL 文件:

其中大多数似乎也存在于runtime/bin/子文件夹中。

与此相反,使用 Java 8u161 运行相同的 javapackager 命令只会导致包含以下 DLL 文件(同样,除了 .exe 和其他内容之外):

我认为 8u161 实际上缺少 msvcr100.dll (根据这个错误),但除此之外它似乎更合理。

我真的需要api-ms-win-*捆绑文件夹中的所有这些 DLL 吗?请注意,它们仍然可以在runtime/bin/包含的 JRE 使用的文件夹中使用,但不知何故,我无法想象它们对于 AppName.exe 的初始执行是必需的。

我发现这个 OpenJDK 提交似乎反映了这种变化。它修复了 8u161 中提到的问题,并且添加api-ms-win-*DLL 似乎是经过深思熟虑的。我仍然不相信所有这些都是必需的,尽管我没有充分的理由,除了它看起来很奇怪。没有它们,应用程序似乎运行良好,但我当然不能确定在任何情况下都会出现这种情况。

0 投票
1 回答
467 浏览

java - javapackager 可以从 Mac 打包 Windows 应用程序吗?

javapackager ( https://docs.oracle.com/javase/9 ​​/tools/javapackager.htm#JSWOR719 ) 可以从 Mac 打包 Windows 应用程序,还是需要实际安装 Windows?

0 投票
0 回答
470 浏览

java - javapackager 无法在 macOS 上生成 dmg

我正在尝试使用 javapackager 从 jar 生成 dmg。

这是我放入终端的内容:

它一直运行到这里:

我去了它说它有问题的文件(DMSLauncher-dmg-setup.scpt),当我手动运行脚本时,它是这样说的:

在此处输入图像描述

谁能帮助我解决这个问题?谢谢你。

0 投票
1 回答
533 浏览

java - 从命令中使用 javapackager 构建 Jar

我正在尝试从命令提示符使用 javapackager 创建一个 jar 文件。为此,我有一个简单的 java 项目。那里只有一个类,并且在类内部有一个 main 方法,它打印一条消息。

它在 dist 文件夹中创建一个名为 test.jar 的 jar。但是当我试图运行 jar 时它会抛出一个错误说

这是我关注的链接 https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javapackager.html

谁可以帮我这个事?谢谢

0 投票
2 回答
137 浏览

java - Windows 上的 javapackager ant 任务中缺少文件路径的第一个字符

我有一个 build.xml 脚本,可以很好地在 MacO 上构建我的 Java 应用程序。

在 Windows 上,它失败并显示:

请注意在 'E:\' 之后缺少第一个字符。

错误似乎来自这个定义:

我不知道可能出了什么问题,尝试了所有的黑客攻击并猜测,例如,如果我在路径前加上“xxx”,那么由于某种原因我没有收到错误并且构建成功,但 jogamp 库不包含在.exe 和应用程序在第一次访问这些库的代码点失败。

这是 Eclipse 4.8.0 和 JDK 1.8.0_181 和 Inno Setup 5.6.1

编辑,更多信息:

如果我更改错误消息中提到的文件的名称(“gluegen-rt-android-natives-android-armv6.jar”),那么该更改将反映在错误消息中!请注意,文件本身并没有在构建脚本中直接提及,只有父目录。所以我的结论是蚂蚁正确地构建了文件集,但构建过程的其他部分无法打开文件,可能错误地报告了文件路径。

或者这是否与这一切都发生在 VirtualBox 中有关,并且我已将项目文件夹从 MacOs 主机映射到 Windows E: 驱动器号,因此它会显示为路径从该驱动器的“根”目录开始...

0 投票
1 回答
140 浏览

javapackager - 是否有项目支持使用 javapackager 进行跨平台构建

Javapackager 是将 Java 应用程序打包为(或多或少)本机应用程序(.EXE .app .rpm 等)的“官方”工具。

它相当不错,但需要在您想要支持的每个平台上构建可分发文件。

这是相当烦人的,实际上相当多的工作,不容易自动化,因此超出了一个小项目的资源。

之所以会这样,是因为它严重依赖各个平台的原生工具。例如 Windows 上的 Inno Setup。

而不是在 Java 中重新实现所有原生功能(这已由 JWrapper 完成),虽然技术上干净且有吸引力的解决方案,但我正在寻找一种利用现有原生工具的方法。

我认为可以通过将本机可执行文件打包到 WINE Bottles 或 AppImage 之类的东西或通过使用 VirtualBox 或类似的东西来使用本机工具,尽管我更喜欢不需要安装 Windows 的解决方案。

由于这是一个相当普遍的问题,我想加入一个已经朝着这个方向发展的项目,而不是从头开始。

但是即使这不是一个独特的问题,我也无法找到这样的项目。

因此标题中的问题。

0 投票
1 回答
426 浏览

java - 如何将程序参数传递给 java 打包程序?

我正在尝试从本地拥有的 .jar 文件中创建本机可执行文件。除了我当前正在使用参数 ( abc) 执行 jar 文件之外,一切看起来都很好:

这是我用来生成本机图像的内容:

如何javapackager表示我希望它作为参数com.threerings.getdown.launcher.GetdownApp运行?abc

谢谢

0 投票
1 回答
286 浏览

dmg - 如何使用 javapackager ant 任务设置 DMG 窗口和背景大小

经过长时间的努力,我设法在 MacOSX (Yosemite) 上生成(使用 Ant)一个 DMG(部署到*.app文件夹的模块化 JavaFX 应用程序),即使使用应用程序和 DMG 卷的自定义图标(两者都作为*.icns文件存储在构建package/macosx文件夹中)。拖放工作,它安装应用程序,应用程序启动,所以一切都很好。嗯,差不多。

我也很想为 DMG 制作自定义背景。它与文件夹中的图标一起package/macosx作为App-background.png文件放置(其中App部分是我的应用程序的名称,与图标一样)。并且javapackager实际上拾取了背景,但不幸的是打开DMG后背景似乎放在了窗口的左上角,窗口本身就像背景的两倍大小,所以窗口背景的3/4只是白色。

我尝试了不同的PNG尺寸,但无济于事。DMG 窗口总是比图像大。

有什么方法可以制作javapackager(也fx:deploy就是我实际使用的)以适当的设置生成 DMG,只使 DMG 窗口适合背景大小?

编辑:似乎DMG窗口实际上具有PNG(原始背景文件)的大小,但由于某种原因,当显示为背景时,图像“略微”缩小了。

0 投票
3 回答
5623 浏览

java - 如何在 Java 11 中使用非模块化依赖项打包应用程序

我开发并分发了一个使用 Apache Batik 和 JavaCV 的 Java Swing 应用程序。我已经通过 java 1.6、7 和 8 对其进行了更新。macOS、Windows 和 Linux 的安装程序是使用 Javapackager 构建的。Java 8 在 19 年 1 月终止支持,我找不到在新 LTS 版本 Java 11 上打包和分发的解决方案。

JavaCV 或 Batik 都不会生成模块化 jar,但我设法将它们重新打包到可以在 Java 11 上编译和生成可运行 jar 的程度,应用程序工作正常,但我无法将其打包以进行分发。我计划下降到 Java 10 以使用 javapackager 并从那里捆绑 11 运行时,但它使用 jlink 生成自定义运行时,jlink 失败,因为 JavaCV 和 Batik 不是模块化的。由于 Batik 和 JavaCV 中的引用不满意,jdeps 不会生成 module-info.class 来修补并使它们模块化,即使我的应用程序在没有它们的情况下也能正常工作。

结果,我将不得不将代码库保留在 Java 8 中,并且即使不再受支持,也要发布它。

我知道有一个调用来创建 javapackager 的替代品,但直到 Java 8 被弃用之后才会出现。而且我仍然需要 Batik 和 JavaCV 项目来重构和构建模块化 jar 以生成自定义运行时。

谁能提供任何其他解决方案?我错过了什么吗?谢谢。