使用eclipse:
当我们通常在java文件中输出任何内容时,它会在eclipse控制台上打印,但是当我们的应用程序部署在Jboss上时,sysout会在服务器控制台和服务器日志中输出值。这是什么,这使得这种变化?
例如: 在独立的普通Java程序中
System.out.println("Java is Wonderful")
在eclipse控制台上打印
但是如果我在java文件中编写相同的句子,即Web应用程序的一部分,并且该应用程序部署在JBoss上,则该值将打印在JBoss控制台和服务器日志上。
我所知道的是" out"指系统控制台,所以如果我sysout任何东西它应该写入系统的控制台。那么为什么在JBoss上部署Web应用程序的情况下,它会在Server控制台上编写。
答案 0 :(得分:2)
System.out
的值最初是作为运行应用程序的JVM的“标准输出”流。
在Eclipse中运行应用程序时,Eclipse已将System.setOut(...)
用于写入Eclipse控制台的流。
从Eclipse启动JVM时,JVM的System.out
将开始引用Eclipse控制台。 JVM中的应用程序可以然后使用System.setOut(...)
更改它。
从命令行启动JVM时,JVM的System.out
将开始引用shell的控制台。
对于像JBoss这样的东西,启动脚本(或本机启动器)可能会在启动应用程序之前更改标准输出流。它应该在某处记录......
因此,要确切了解发生了什么,您需要查看 如何启动JBoss。
但没有什么特别神秘的。
答案 1 :(得分:0)
您的服务器的启动脚本可能包含...> stdout.txt 2> stderr.txt
或...> allout.txt 2>&1
之类的内容。它在类似unix的操作系统中重定向标准IO。其他操作系统也有类似的命令。