我正在使用JDK中的javapackager工具将java命令行应用程序打包成Windows可执行文件。
不幸的是,当我从命令提示符执行生成的 .exe 文件时,打包的 Java 应用程序的标准输出不会重定向回命令提示符。这会阻止用户查看应用程序的输出。
有没有办法配置 javapackager 工具,以便将 Java 应用程序中的 stdout 重定向到启动它的命令提示符?
任何帮助,将不胜感激!
小智 3
有类似的问题。在我的应用程序中,如果未提供命令行选项,则 main 函数将运行 JavaFX GUI,并使用参数运行 CLI。如果没有 stdout,用户就无法知道应用程序在运行命令行版本时是否正确执行。
.exe 运行与 javaw.exe 等效的内容,因此 stdout 被抑制。您可以在命令行将 stdout 通过管道传输到文件,也可以运行“MyApp.exe | MORE”,它将把 stdout 打印回控制台。
对于我的最终解决方案,我添加了一个下拉列表“package\windows\MyApp-post-image.wsf”以在安装目录中创建批处理脚本。
<?xml version="1.0" ?>
<package>
<job id="postImage">
<script language="JScript">
<![CDATA[
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("MyApp/MyApp.bat", true);
f.WriteLine("@echo off");
f.WriteLine("MyApp.exe %* | MORE");
f.Close();
]]>
</script>
</job>
</package>
Run Code Online (Sandbox Code Playgroud)
批处理脚本将任何命令行参数传递给 EXE,并将输出通过管道传输回控制台。如果您的命令行应用程序在执行期间需要用户输入,则此方法将不起作用。
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |