【问题标题】:edit install4j runtime vmoptions to redirect stderr and stdout编辑 install4j 运行时 vmoptions 以重定向 stderr 和 stdout
【发布时间】:2013-08-08 22:42:17
【问题描述】:

我们正在从 installanywhere 切换到 install4j。对于前者,当我们需要进行额外调试时(应用程序在 linux 上作为服务运行,因此默认情况下启动器会吞下 stderr 和 stdout)并重定向 stderr/标准输出到文件。

在任何地方都找不到有关如何以相同方式编辑已安装应用的 install4j vmoptions 文件的任何文档。

有人知道怎么做吗?

(需要说明的是,这是由 install4j 生成的应用启动器启动服务,而不是安装程序本身。)

【问题讨论】:

    标签: install4j


    【解决方案1】:

    install4j 没有这样的选项,但是在您的应用程序中有条件地设置重定向相当容易:

    if (Boolean.getBoolean("debug.redirect")) {
        System.setOut(new PrintStream(new FileOutputStream("stdout.log")));
        System.setErr(new PrintStream(new FileOutputStream("stderr.log")));
    }
    

    【讨论】:

      【解决方案2】:

      看来,至少从版本 7 开始,install4j 现在通过启动器向导以两种不同的方式支持此功能:

      允许-console参数

      Executable info页面上,您可以配置一个GUI应用程序来支持-console参数:

      如果用户在从控制台窗口启动启动器时提供了 -console 参数,启动器将尝试获取控制台窗口并将 stdout 和 stderr 重定向到它。

      请注意,install4j 启动器不会消耗-console 参数,它会被传递给您的应用程序,因此您需要准备好处理它。

      将标准输出和标准错误重定向到文件

      Executable info > Advanced options > Redirection 页面上,您可以指定将stdout 和stderr 重定向到的单独文件。

      如果启用,使用这些选项将覆盖-console 参数:

      如果您在重定向设置中重定向 stderr 和 stdout,该输出将不会写入控制台。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-22
        • 2022-01-18
        • 2019-10-11
        • 1970-01-01
        • 2012-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多