问题标签 [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.
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。
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 似乎是经过深思熟虑的。我仍然不相信所有这些都是必需的,尽管我没有充分的理由,除了它看起来很奇怪。没有它们,应用程序似乎运行良好,但我当然不能确定在任何情况下都会出现这种情况。
java - javapackager 可以从 Mac 打包 Windows 应用程序吗?
javapackager ( https://docs.oracle.com/javase/9 /tools/javapackager.htm#JSWOR719 ) 可以从 Mac 打包 Windows 应用程序,还是需要实际安装 Windows?
java - 从命令中使用 javapackager 构建 Jar
我正在尝试从命令提示符使用 javapackager 创建一个 jar 文件。为此,我有一个简单的 java 项目。那里只有一个类,并且在类内部有一个 main 方法,它打印一条消息。
它在 dist 文件夹中创建一个名为 test.jar 的 jar。但是当我试图运行 jar 时它会抛出一个错误说
这是我关注的链接 https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javapackager.html
谁可以帮我这个事?谢谢
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: 驱动器号,因此它会显示为路径从该驱动器的“根”目录开始...
javapackager - 是否有项目支持使用 javapackager 进行跨平台构建
Javapackager 是将 Java 应用程序打包为(或多或少)本机应用程序(.EXE .app .rpm 等)的“官方”工具。
它相当不错,但需要在您想要支持的每个平台上构建可分发文件。
这是相当烦人的,实际上相当多的工作,不容易自动化,因此超出了一个小项目的资源。
之所以会这样,是因为它严重依赖各个平台的原生工具。例如 Windows 上的 Inno Setup。
而不是在 Java 中重新实现所有原生功能(这已由 JWrapper 完成),虽然技术上干净且有吸引力的解决方案,但我正在寻找一种利用现有原生工具的方法。
我认为可以通过将本机可执行文件打包到 WINE Bottles 或 AppImage 之类的东西或通过使用 VirtualBox 或类似的东西来使用本机工具,尽管我更喜欢不需要安装 Windows 的解决方案。
由于这是一个相当普遍的问题,我想加入一个已经朝着这个方向发展的项目,而不是从头开始。
但是即使这不是一个独特的问题,我也无法找到这样的项目。
因此标题中的问题。
java - 如何将程序参数传递给 java 打包程序?
我正在尝试从本地拥有的 .jar 文件中创建本机可执行文件。除了我当前正在使用参数 ( abc
) 执行 jar 文件之外,一切看起来都很好:
这是我用来生成本机图像的内容:
如何javapackager
表示我希望它作为参数com.threerings.getdown.launcher.GetdownApp
运行?abc
谢谢
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(原始背景文件)的大小,但由于某种原因,当显示为背景时,图像“略微”缩小了。
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 以生成自定义运行时。
谁能提供任何其他解决方案?我错过了什么吗?谢谢。