0

当谈到 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 防火墙中。它应该打开一个窗口并等待交通但什么也没有?该程序不显示在任务管理器中。

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

史蒂夫·霍尔

4

2 回答 2

1

打开--win-console以查看来自您的应用程序的实际错误消息 - 更多信息在这里。请注意,jpackage -add-launcher在 JDK15 中制作带/不带控制台的版本不起作用,但如果您使用 JDK14 或 JDK16 Early Access 则很好,因此--win-console如果不需要永久使用它,您将不得不重新构建。

也用于--app-version确保您的第二个版本的安装擦除第一个版本 - 更多信息在这里

于 2020-12-21T12:37:47.983 回答
0

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

史蒂夫

于 2021-01-11T16:11:27.313 回答