作为测试我从Swing程序写入linux的标准输出,并且没有可见的控制台。它没有崩溃。没有异常被抛出。这是否安全?我一般无意这样做,但如果程序中存在错误,可能会发生这种情况。
编辑:问题被重新描述,删除所有提到的Java对象System.out。有一个控制台可以在Eclipse IDE中接收和显示标准输出数据,但显然我的问题与没有IDE时有关。
答案 0 :(得分:2)
每个Java程序仍然是一个程序,Linux中的每个程序都有三个流:输入,输出和错误。 Java的in
,out
和err
位于这些流之上。
如果要从java YourApp
这样的命令行启动程序,则很可能会在控制台中看到这些流的输出。或者调试器能够捕获它们并做同样的事情。但是在一个从GUI开始的应用程序中,输出几乎被遗忘了。
简短版:是的,这是安全的。
答案 1 :(得分:0)
它写入stdout,就像在任何Java应用程序中一样。这取决于操作系统stdout是什么以及输出显示的位置,但仅仅因为应用程序显示GUI窗口并没有使它有任何不同。你可以让webapp显示一个窗口,你仍然可以从那里写入stdout。
答案 2 :(得分:0)
如果从命令行启动程序,则System.out将写入该窗口。如果你启动了程序
答案 3 :(得分:0)
它转到标准输出流。但是可能存在或者可能没有与当前JVM关联的控制台。
如果你从终端运行你的应用程序(命令或他们在Windows系统上调用的任何东西),你将能够看到你的输出几乎与你在eclipse上看到的相同。
答案 4 :(得分:0)
严格地说,你没有写入Linux的标准输出,你正在写入java System.out对象。 Java应用程序可以将System.out重定向到不同的输出流,因此无法保证输出将在OS级别进行。也就是说,从Swing应用程序写入System.out是安全的,因为它不会导致任何事情爆炸。
不要写任何敏感信息,认为它不会去任何地方。