无法使用jpackage生成控制台应用程序

问题描述 投票:0回答:2

当我在 Windows 10 下运行以下命令时,我得到一个 EXE 文件:

jpackage --win-console --module mymodule --module-path main.jar --module-path other-dependencies/ --app-version 1.0.0

我希望能够将 EXE 作为命令行应用程序运行,但运行 EXE 似乎是在“开始”菜单中安装应用程序,并且它似乎作为 GUI 应用程序执行(立即退出,从不输出到标准输出)。

我是否应该能够使用

jpackage
创建一个像 Windows 下的控制台应用程序一样执行的本机二进制文件?还是我误解了
--win-console
是什么意思?

我发现的唯一讨论是关于 JDK-8253461 但我不明白 Andy Herrick 的意思。为什么非控制台应用程序需要访问标准输入/标准输出?

java windows console-application jpackage
2个回答
0
投票

我是否应该能够使用 jpackage 创建一个像 Windows 下的控制台应用程序一样执行的本机二进制文件?

是的,但不是作为一个独立的可执行文件。

默认情况下

jpacakge
生成安装程序(Windows 上的 .exe 文件)。您可以使用
--type msi
生成 .msi 安装程序,或使用
--type app-image
创建可以压缩和分发的应用程序映像。应用程序映像包含本机二进制文件。

例如,如果我使用以下 jpackage 命令:

jpackage --win-console --module mymodule --module-path mymodule.jar --type app-image --name myapp

jpackage
创建一个
myapp
文件夹,其中包含一个
myapp.exe
可以作为控制台应用程序运行:

> .\myapp\myapp.exe
Hello world!

0
投票

--win-console 意味着当你运行你的应用程序时它会打开一个终端。您可以使用它从 cmd 运行可执行文件并检查输出以进行调试。一旦应用程序正常,您可以删除该选项并重新构建它,这样它就不再打开终端,而只会打开您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.