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