标签: jpackage

JPackage 仅返回 Java 14 上的 SDK 版本号

我最近将 Java 11 应用程序移植到新发布的 Java 14 (ZuluJDK)。当尝试通过命令行使用新的 JPackage 打包我们的应用程序时,无论我使用哪个 jpackage 命令,唯一发生的事情是以下输出:

WARNING: Using incubator modules: jdk.incubator.jpackage
14
Run Code Online (Sandbox Code Playgroud)

一个示例命令(审查了一些内容,由 < > 占位符表示...):

jpackage --type app-image --verbose --input <path> --main-class <class> --main-jar ./<name>.jar --output runtime-image --name "<name>" --version 2.0.0 --vendor "<company>" --icon <icon-path>.ico
Run Code Online (Sandbox Code Playgroud)

有人可以帮我看看这是什么原因造成的吗?sdk版本的Output并没有提供太多帮助。

java deployment command-line java-14 jpackage

4
推荐指数
1
解决办法
299
查看次数

我可以使用 jpackage (Java 17) 制作可安装的 32 位版本的应用程序吗

我使用 Java 17 和 JavaFX 16 库制作了一个应用程序。有没有办法使用 JPackage 制作可安装的 32 位版本?由于自 Java 9 以来 Java 一直都是 64 位(与 JavaFX 库相同),我怀疑这是不可能的,但是有什么办法可以做到吗?

java javafx javafx-11 jpackage java-17

4
推荐指数
1
解决办法
2524
查看次数

JPackages JavaFX + Spring boot 无法启动

我正在尝试使用 Spring Boot 构建 JavaFX 应用程序并使用 jpackage 进行部署。

使用该javafx-maven-plugin javafx:run命令时,我可以看到项目启动。但是将其构建为*.msi安装程序、安装并启动后*.exe,没有任何反应(无论是通过双击还是命令行运行)。

我该如何解决这个问题,或者至少知道发生了什么?我怀疑javafx:run目标是手动 jlink 中缺少一些参数,但是我无法使用,javafx:jlink因为应用程序本身不是模块,因为 Spring Boot 尚未模块化。

这是来源;

编辑: 根据@Slaw的建议,我修改了jpackage命令以包含`--win-console。从而成功运行该应用程序。虽然这是一个很好的步骤,但这不是我想要的,我想在没有提示的情况下运行它。

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.test</groupId>
    <artifactId>mytest</artifactId>
    <packaging>jar</packaging>
    <version>1.0</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.6.0</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.6.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>17.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java javafx spring-boot jpackage

3
推荐指数
1
解决办法
873
查看次数

jlink:在合并模块和 kotlin.stdlib 中打包 kotlin.*

通过 gradle (7.5.1) 构建 Kotlin JavaFX 应用程序,并尝试使用 jlink/jpackage 进行打包/安装。该应用程序有一个module-info.java

module com.foo.bar {
    requires javafx.controls;
    requires javafx.fxml;
    requires de.jensd.fx.glyphs.fontawesome;
    requires kotlin.stdlib;
    requires com.github.ajalt.clikt;
    requires com.google.gson;
    requires java.sql;

    opens com.foo.bar to javafx.fxml, com.google.gson;
    exports com.foo.bar;
}
Run Code Online (Sandbox Code Playgroud)

gradle jlink运行没有任何问题,但在执行脚本时,出现以下错误:

Error occurred during initialization of boot layer
java.lang.LayerInstantiationException: Package kotlin.* in both module com.foo.merged.module and module kotlin.stdlib
Run Code Online (Sandbox Code Playgroud)

某个图书馆在哪里*(它每次都会改变)。这build.gradle情况如下:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.6.20'
    id 'org.openjfx.javafxplugin' version '0.0.13'
    id 'org.beryx.jlink' version '2.25.0'
    id 'application'
}

group 'com.foo' …
Run Code Online (Sandbox Code Playgroud)

javafx gradle jlink kotlin jpackage

2
推荐指数
1
解决办法
429
查看次数

JPackage在创建DMG之前将文件复制到应用程序的Resource文件夹中

我在 MacOS 上使用 Java 14 中的 JPackage,需要在构建 DMG 之前将文件复制到应用程序的 MacOS 和资源文件夹,但不知道如何操作。在打包工具用户指南中,它提到从名为 application-name-post-image.sh 的资源文件夹运行脚本,但这似乎没有发生。

java deployment packing java-14 jpackage

1
推荐指数
1
解决办法
1526
查看次数

jpackage 将文件添加到 installdir

我正在使用 Java 15 中的 jpackage 为我的 javafx 应用程序创建安装程序。因为其中一个库需要一些 Visual C++ DLL,所以我也想包含它们。它们应放置在主 .exe 和 .ico 所在的目录中。

我不明白如何编写 overrides.wxi 来实现这一目标。 https://docs.oracle.com/en/java/javase/14/jpackage/override-jpackage-resources.html#GUID-1B718F8B-B68D-4D46-B1DB-003D7729AAB6 这是我找到的有关此的所有信息。

java wix jpackage

1
推荐指数
1
解决办法
1130
查看次数