我们正在从 installanywhere 切换到 install4j。对于前者,当我们需要进行额外调试时(应用程序在 linux 上作为服务运行,因此默认情况下启动器会吞下 stderr 和 stdout)并重定向 stderr/标准输出到文件。
在任何地方都找不到有关如何以相同方式编辑已安装应用程序的 install4j vmoptions 文件的任何文档。
有人知道怎么做吗?
(需要明确的是,这是由 install4j 生成的应用程序启动器启动服务,而不是安装程序本身。)
我们正在从 installanywhere 切换到 install4j。对于前者,当我们需要进行额外调试时(应用程序在 linux 上作为服务运行,因此默认情况下启动器会吞下 stderr 和 stdout)并重定向 stderr/标准输出到文件。
在任何地方都找不到有关如何以相同方式编辑已安装应用程序的 install4j vmoptions 文件的任何文档。
有人知道怎么做吗?
(需要明确的是,这是由 install4j 生成的应用程序启动器启动服务,而不是安装程序本身。)
install4j 没有这样的选项,但是有条件地在应用程序中设置重定向相当容易:
if (Boolean.getBoolean("debug.redirect")) {
System.setOut(new PrintStream(new FileOutputStream("stdout.log")));
System.setErr(new PrintStream(new FileOutputStream("stderr.log")));
}
看来,至少从版本 7 开始,install4j 现在通过启动器向导以两种不同的方式支持此功能:
-console
参数在Executable info页面上,您可以配置 GUI 应用程序以支持该-console
参数:
如果用户在从控制台窗口启动启动器时提供 -console 参数,启动器将尝试获取控制台窗口并将 stdout 和 stderr 重定向到它。
注意 install4j 启动器不会消耗-console
参数,它会传递给你的应用程序,所以你需要准备好处理它。
在Executable info > Advanced options > Redirection页面上,您可以指定将 stdout 和 stderr 重定向到的单独文件。
如果启用,使用这些选项将覆盖-console
参数:
如果您在重定向设置中重定向 stderr 和 stdout,则该输出将不会写入控制台。