问题标签 [jpackage]

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 回答
209 浏览

java - 将 JavaFX 导出到可运行 jar 不起作用

我的代码在 Eclipse 中运行良好。我正在使用 xubuntu。包括包(在导出过程中选择适当的单选框)并不能解决问题。这就是我得到的java -jar toast.jar

感谢您的时间!

0 投票
1 回答
1189 浏览

java - 在 Windows 上使用 JPackage 是否可以让 main .exe 不作为控制台运行,但让其他 laucher 作为控制台运行?

使用 JPackage,我无法让 --win-console 选项为主启动器分开工作,但我希望主启动器不输出到控制台,但有一个调试版本可以。

即如果我跑

jpackage.txt

jpackage.properties

然后 SongKong 和 SongKongDebug 都在没有控制台的情况下运行

我还尝试将 jpackage.properties (这意味着名称/值对)修改为

它仍然没有工作

而如果我添加

到 jpackage.txt 和

到 jpackage.properties

那么SongKong将作为控制台运行,而SongKongDebug不会,但对我来说是错误的方式。

如果我将SongKong重命名为SongKongDebug并将SongKongDebug重命名为SongKong

例如

并修改 set --name SongKongDebug

在 jpackage.txt

然后它可以工作,但是现在在安装 SongKong 时它说安装SongKongDebug这是错误的。

我已经尝试过当前的 Java 14 版本和早期访问 Java 15 和 16 版本,但没有区别。

我发现报告了这个错误,但随后用户将其关闭为没问题https://bugs.openjdk.java.net/browse/JDK-8213717我发现 jpackage 帮助有点混乱所以我想知道我是否做错了方法。

帮助说

创建应用程序启动器的选项:

--add-launcher 启动器名称=文件路径

目录)。

可以使用。

主应用程序启动器将从命令行选项构建。可以使用此选项构建其他替代启动器,并且可以多次使用此选项来构建多个附加启动器。--arguments 主类参数

--java-options java 选项

--main-class 类名

--main-jar 主jar文件

--module 或 -m 模块名称/主类]

指定但不是两者。

因此,您可以使用 --add-launcher 创建附加启动器并使用属性文件,但这也听起来您可以将额外参数作为附加命令行选项传递,但这怎么可能,因为不清楚哪个启动器他们指的是?

0 投票
1 回答
351 浏览

java - 为什么我的 java 日志记录到控制台和文件

我将我的应用程序配置为使用日志记录类,而不是 jre conf 文件夹中的 logging.properties 文件,使用 -Djava.util.logging.config.class=com.jthink.songkong.logging.StandardLogging

它有效,除了我注意到只是意味着要进入我的日志文件的信息也会进入控制台窗口,在 Windows 上使用 --win-console 和 jpackage 时会注意到这一点,但我认为它已经发生了在我使用 JPackage 之前

这是我的日志记录类:

这是我希望转到我的 songkong-debug0-0.log 文件的代码示例,但它也被输出到控制台窗口:

为什么会这样?

0 投票
1 回答
117 浏览

java - 无法将模块添加到 jpackage 创建的应用程序

我在将 jpackage 创建的应用程序连接到 websocket 端点时遇到问题。通过我的 IDE 运行时协商的密码在构建的映像中不可用。看来我遇到了这里描述的问题:https ://www.gubatron.com/blog/2019/04/25/solving-received-fatal-alert-handshake_failure-error-when-performing-https-connections-on -a-custom-made-jre-with-jlink/

我现在正在尝试添加jdk.crypto.cryptoki到我的 jpackage 并且无法添加。

我第一次尝试这个

但得到

我也试过

这也不起作用。

我如何添加这个模块以便它与我的应用程序一起打包?

0 投票
1 回答
165 浏览

java - 如何将自签名证书添加到 Java 信任库?

我正在尝试 jpackage Java 14 来打包我的 Spring 应用程序,我需要自签名证书 Java 信任库,但我在 jpackage 映像中找不到密钥工具。

如何将自签名证书添加到 Java 14 jpackage 中的 Java 信任库?

0 投票
0 回答
122 浏览

java - 如何在 mac 上授予使用 jpackage 全盘访问权限打包的 java 应用程序?

我创建了一个与jpackage. 使用 AdoptOpenJDK 14 编译和打包。

在 Mac 上安装后,它需要完整的磁盘访问权限才能将文件复制到/Application目录。

不幸的是,我根本不知道该怎么做。授予对应用程序的完整磁盘访问权限似乎没有任何区别。

使用jpackage并不重要。它看起来像是完成它的最简单方法。我很乐意使用其他东西打包它,只要它可以获得完整的磁盘访问权限。

0 投票
1 回答
106 浏览

java - 打包应用程序时未使用 Trustmanager

这让我抓狂:我有一个运行 Java 14 的小型模块化 JavaFX (TornadoFX) 应用程序。在让模块系统工作时遇到了很多麻烦(感谢 Badass JLink 插件(https://badass-jlink-plugin)。 beryx.org/releases/latest/ )) 我现在正在尝试为它获取一个独立的可执行文件。该插件使用 jpackager 生成可执行文件并运行,但它不会使用(自定义)信任管理器进行 SSL 连接。

我有带有一些证书的小型自定义信任库文件。这会在启动时加载到密钥库中,然后用于创建自定义 TrustManager 实例。然后将自定义的 TrustManager 和默认的 TrustManager 合并为一个 TrustManager,后者首先尝试使用自定义的 TrustManager 验证证书,如果失败,则使用默认的再次尝试。

从 IDE 运行应用程序(gradle run)时,这可以正常工作。该应用程序使用 WebView 来显示远程登录页面,我可以在日志中看到 TrustManager 用于验证证书。在此之后,对某个端点进行 Rest 调用,并再次调用 trustmanager 来检查证书。

但是,当我使用 jpackager 打包应用程序时,这不起作用。现在,由于某种模糊的原因,信任管理器仅用于 WebView 建立的连接,而不用于 Rest 调用。

我比较了打包运行时和 IDE 中使用的安全权限/策略,没有区别。

我真的对Java感到沮丧。首先是模块系统的痛苦,现在是这个。我完全不知道可能是什么问题。

这里有一些日志。首先是打包版本:

在 Rest 调用期间没有调用 trustmanager。

现在版本从 IDE 启动:

此处还为 Rest 调用调用 trustmanager 并建立连接。

编辑:我现在尝试将打包的运行时与我系统上安装的运行时进行比较,我发现如果我将文件 C:\Program Files\Java\jdk-14\lib\modules 复制到打包的运行时lib\ 文件夹它正在工作。这仍然没有多大帮助,因为我不知道这个模块文件来自哪里以及为什么打包运行时附带的那个比我在系统范围安装中找到的那个大,但也许有人有一个想法。

0 投票
0 回答
155 浏览

java - 使用 Java 14 发布 Gluon 移动应用程序

在这个问题Gluon Mobile project does not work with gradle 6之后,我想知道如何发布一个使用 gluon mobile 和 Java 14 的应用程序。

根据我的阅读,如果我将 GraalVM 与客户端插件(https://github.com/gluonhq/client-maven-pluginhttps://github.com/gluonhq/client-gradle-一起使用,则 gluon mobile 仅支持 Java 14插件)。我阅读了https://github.com/dlemmermann/JPackageScriptFX以了解如何打包 JavaFX 应用程序,但我认为它与 GraalVM 的本机映像不兼容。

所以看起来我被困住了。我不能使用上面的 jpackage/link 脚本,因为我不能使用 Java 14,如果我使用带有 GraalVM 的客户端插件能够使用 Java14,我不能使用 jpackage/link 脚本。那我怎么发货?

我可以只用我的整个 gluon 移动应用程序和 JDK 模块部门发送一个 zip/jar 吗?然后我就不需要特定于平台的图像或包装。

我现在的目标平台是 Win 和 Mac,至少在我弄清楚这件事之前是这样。我知道这里的一切都很新,所以我不是在寻找奇迹。

0 投票
1 回答
267 浏览

java - JPackage(孵化器)和SQLite数据库问题

出于想法,我可以再次使用一些帮助。:( 我正在制作将使用 SQLite 数据库的 JavaFX 应用程序。使用了带有 OpenJFX14 的 OpenJDK 14。在我的 Eclipse 中一切正常。我尝试测试以使用 JPackage 制作安装程序,这也有效。当我开始安装应用程序时,它开始正常,但由于某种原因拒绝连接数据库。

这是我的项目结构:

在此处输入图像描述

我有一个按钮,在加载 Stage 时我检查连接。它在文件 PocetnaController 中:

这是来自 PocetnaModel 的代码,称为:

当为真时,它以我的语言返回“已建立数据库连接”,当为假时,它返回“与数据库的连接失败”。

我再说一遍,在 Eclipse 中一切正常。但是,当启动安装的应用程序时,我得到“与数据库的连接失败”。所以连接由于某种原因返回null。

我的 db 文件由 /app 文件夹中的 JPackage 复制。我试图手动将 Porez.db 复制到 *.exe 所在的根文件夹。奇怪的是,在这种情况下状态标签不会改变。它应该,它必须返回真或假,不明白这一点。

这是开始时的舞台外观:

在此处输入图像描述

即使我在 /app 文件夹中重命名数据库文件,所以找不到我的连接仍然返回 false 并相应地更新状态,这没关系。

这是负责连接的整个 Konekcija 文件:

我的第一个怀疑是我创建的 JAR 有问题,但不能确定。在 Eclipse 中工作对我来说毫无意义,安装后也没有。

0 投票
1 回答
267 浏览

windows - 如何在 Windows 上更改 JPackage 应用程序的窗口图标?

我正在使用 JPackage 部署一个独立的应用程序。这就是我为 Windows 编译它的方式:

但是如何为应用程序标题/窗口使用自定义图标,而不是下面描述的 Windows 默认图标?

使用 Windows 默认图标描绘应用标题的屏幕截图