如何使用jpackage将程序添加到启动项?

6
我最近看了一下jpackage,想知道是否有选项可以自动将应用程序添加到启动项中。例如,假设我有一个名为“App.java”的文件。
package org.openjfx;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

/**
 * JavaFX App
 */
public class App extends Application {

    @Override
    public void start(Stage stage) {
        var label = new Label("Hello, JavaFX");
        var scene = new Scene(new StackPane(label), 640, 480);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

module-info.java

module Sample {
    requires javafx.controls;
    opens org.openjfx;
}

使用Maven生成运行时,
mvn javafx:jlink

然后生成安装程序,

jpackage --win-dir-chooser --runtime-image ./target/image/ --name Sample-Javafx --module Sample/org.openjfx.App -d ./target/bin/

这一切都很顺利,但我想要的是在安装后注册App.java并启动此应用程序,使用jpackage是否可能或者App.java内部有什么技巧可以实现?


据我所知,jpackage没有提供这样的选项。 - anko
谢谢您的回复,还有其他选项可以实现这个吗? - srilakshmikanthanp
我认为不是,但也许有人知道。祝你好运 :) - anko
1
如果不存在的话,您可能想要提交一个功能请求。如果您继续使用 jpackage,一个潜在的解决方法可能是尝试在应用程序启动时完成此操作。例如,在Windows上,启动应用程序通常只需要在特定文件夹中放置快捷方式;其他操作系统则不确定。 - Slaw
4
jpackage 依赖于 wix 工具集来构建 Windows 安装程序。Wix 可以定义 服务,或者在启动时添加程序。可能可以定制您的构建以指定所需的选项,使 Wix 构建出您想要的安装程序,但我没有足够的 jpackage 经验来确定是否可以这样做或提供说明。 - jewelsea
1个回答

0

如果你在Windows上运行,我知道如何在Linux上解决这个问题。

JPackage将创建一个Debian软件包。这样的软件包主要包含两个tar文件:主文件包含需要安装到文件系统中的文件。另一个包含元数据(我们有哪些软件包?)以及四个脚本,每个脚本都会在特定事件时运行:

  • preinst在tar文件被提取(安装)之前执行
  • postinst在tar文件被提取(安装)之后执行
  • prerm在应用程序被删除(卸载)之前执行
  • postrm在应用程序被删除(卸载)之前执行

回到你的问题,我所要做的就是提供我的版本的postinst脚本,该脚本将注册应用程序以自动启动https://docs.oracle.com/en/java/javase/17/jpackage/override-jpackage-resources.html#GUID-1B718F8B-B68D-4D46-B1DB-003D7729AAB6

也许 Windows 版本有类似的东西?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接