使用eclipse:
当我们通常在java文件中sysout任何内容时,它会在eclipse控制台上打印,但是当我们的应用程序部署在Jboss上时,sysout会在服务器控制台和服务器日志上打印该值。是什么导致了这种变化?
例如: 在独立的普通Java程序中
System.out.println("Java is Wonderful")
在 Eclipse 控制台上打印
但是,如果我在 java 文件(即 Web 应用程序的一部分)中编写相同的句子,并且该应用程序部署在 JBoss 上,则该值将打印在 JBoss 控制台和服务器日志上。
我所知道的是“out”指的是系统控制台,因此如果我输出任何内容,它应该写入系统的控制台。那么为什么如果 Web 应用程序部署在 JBoss 上,它会在服务器控制台上写入。
最佳答案
System.out
的值开始时是运行应用程序的 JVM 的“标准输出”流。
当您在 Eclipse 中运行应用程序时,Eclipse 使用
System.setOut(...)
来写入 Eclipse 控制台的流。当您从 Eclipse 启动 JVM 时,该 JVM 的 System.out 将开始引用 Eclipse 控制台。然后,JVM 中的应用程序可以使用
System.setOut(...)
更改它。当您从命令行启动 JVM 时,JVM 的 System.out 将开始引用 shell 的控制台。
对于像 JBoss 这样的东西,启动脚本(或 native 启动器)很可能会在启动应用程序之前更改标准输出流。它应该记录在某处......
因此,要准确了解发生了什么,您需要查看如何启动 JBoss。
但它并没有什么特别神秘的。
关于java - System.out.println 在服务器上打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26450116/