在 Win10 上运行服务器的 Jpackage 问题我做错了什么?

问题描述

在 Java 打包的细节方面,我是一个完全的新手。

我已经通过 jdk-15 使用 Java-15 编写了一个 TCP 数据服务器,它在 VSCode 下运行时运行得非常愉快。

我想将它作为 MRS_Server.exe 分发,希望不需要在主机上加载 Java,也不必分发我的代码

我设法使用以下命令运行 Jpackage:-

jpackage --type app-image --name MRS_Server --input C:\Users\steve\Documents\workspace1_neon\Pi_Server --main-jar C:\Users\steve\Documents\workspace1_neon\Pi_Server\Pi_Server.jar

jpackage --type exe --app-image MRS_Server --name MRS_Server

产生 MRS_Server-1.0.exe。反过来,它会创建文件夹 C:\Program Files\MRS_Server,其中包含我在 MRS_Server\app 文件夹中的代码副本、我假设包含运行服务器所需的所有文件的 MRS_Server\runtime 文件夹和文件 MRS_Server.exe和 MRS_Server.ico。

此时我运行 C:\Program Files\MRS_Server\MRS_Server.exe ......没有任何反应!??我已经在没有安全程序的机器上运行它并添加到 Windows 防火墙中。它应该打开一个窗口并等待交通但什么都没有?该程序未显示在任务管理器中。

我错过了什么?我宁愿不必用另一种语言重写服务器。

史蒂夫·霍尔

解决方法

打开 --win-console 以查看来自您的应用程序的实际错误消息 - 更多信息 here。请注意,jpackage -add-launcher 用于制作带/不带控制台的版本在 JDK15 中不起作用,但如果您使用 JDK14 或 JDK16 Early Access 就可以了,因此以后如果不需要,您将不得不在没有 --win-console 的情况下重新构建永久。

还使用 --app-version 确保您的第二个版本的安装擦除第一个版本 - 更多信息 here

,

我放弃了 JDK-15 并使用了 AdoptOpenJDK-16,并且没有任何问题。感谢所有回复的人。

史蒂夫