【问题标题】:How do I pipe the Java console output to a file?如何将 Java 控制台输出通过管道传输到文件?
【发布时间】:2010-10-12 04:49:52
【问题描述】:

我在一个应用程序中发现了一个完全冻结 JVM 的错误。生成的堆栈跟踪将为开发人员提供有价值的信息,我想从 Java 控制台检索它。当 JVM 崩溃时,控制台被冻结,我无法再复制包含的文本。

有没有办法将 Java 控制台直接通过管道传输到文件或其他访问 Java 应用程序控制台输出的方法?

更新:我忘了提,没有更改代码。我是手动测试员。

更新 2:这是在 Windows XP 下,它实际上是一个 Web 启动应用程序。管道输出

javaws jnlp-url
不起作用(空文件)。

【问题讨论】:

  • Java 控制台是指运行 webstart 应用程序或小程序时打开的窗口吗?
  • 没错。这是 Java 首选项中的一个选项。

标签: java testing logging java-web-start


【解决方案1】:

试试this guide 它对我有用。它还指导您如何设置“System.setOut(fileStream);”、“System.setErr(fileStream);”

【讨论】:

    【解决方案2】:

    在 Mac 10.8.2 中,可以在 /Users/<userName>/Library/Application Support/Oracle/Java/Deployment/log/ 找到日志。

    在您必须从 Java 控制面板启用日志记录之前。选项“Enable logging”位于选项卡“Advanced”中。 Java 控制面板可以从“System preferences”启动。

    【讨论】:

      【解决方案3】:

      (如果您可以修改代码)您可以将System.out字段设置为不同的值:

      System.setOut(new PrintStream(new FileOutputStream(fileName)));
      

      如果您正在运行来自Unix 的脚本(通过java 调用程序),您可以这样做:

      /path/to/script.sh >& path/to/output.log
      

      【讨论】:

      • 对不起,我忘了说:没有接触代码。过失!
      • 嗯。 System.outfinal,所以你不能这样改变它来使用 PrintStream。您可以使用System.setOut(...) 来执行此操作,即:System.setOut(new PrintStream(new FileOutputStream(fileName)));
      • 如何在该文件中重定向异常堆栈跟踪?
      【解决方案4】:

      其实可以在Java控制面板中激活tracing。这会将任何最终在 Java 控制台中的跟踪文件中的内容进行管道传输。

      日志文件将结束于:

      • /.java/deployment/在 Unix/Linux 上登录
      • \Sun\Java\Deployment\log on Windows
      • /~/Library/Caches/Java/log on OS X

      【讨论】:

      • 你能告诉我们为什么控制台死机了吗?
      • 不是真的,我不太了解堆栈跟踪,因为我不是这个团队的开发人员。据我所知,它与绘制一些组件和事件调度线程有关(像往常一样,哈哈)。
      • 是的,我会这样做的,詹姆斯。只是系统不允许你在 48 小时之前这样做。
      • 在 Os X 10.8.5 上,我在 ~/Library/Application Support/Oracle/Java/Deployment/log/ 找到了日志和跟踪信息
      • @TimDearborn 下面 Jan 的回答指出了这一点,你可能想投票赞成那个。
      【解决方案5】:

      冻结的控制台可能意味着死锁(也可能意味着反复抛出异常)。您可以使用jstack 获取堆栈转储。 jps 可能会使查找过程更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        相关资源
        最近更新 更多