假设我从我使用过的代码中创建了一个可执行的jar
System.out.println()
当我们运行可执行 jar 时,没有控制台。那么,这条线会发生什么? java
如何处理这种情况?
编辑 01:
注意:这种情况是我既不使用控制台运行jar
,也不以任何方式将任何控制台与其关联。
EDIT 02:让事情更清晰:
我知道任何地方都不会打印任何东西,因为没有控制台......!我想知道 java
在这种情况下如何处理这一行?为可执行 jar 生成字节码时是否省略了这一行?或者当没有控制台时,这条线是否被忽略了?或者任何...
最佳答案
在可执行 jar 文件中运行代码没有什么特别之处。如果您从控制台运行它,例如使用 java -jar foo.jar
输出仍将转到控制台。
如果您以某种不附加控制台的方式运行代码 - 例如 Windows 上的 javaw
,它是与可执行 jar 文件关联的默认程序 - 那么输出将不会任何地方。它不会导致任何错误 - 文本只会丢失。
请注意,在这种情况下,如果您改用 System.console()
,that 将返回 null
。所以:
System.out.printf("Foo%n"); // No problem. Goes nowhere.
System.console().printf("Foo%n"); // Would throw a NullPointerException.
关于java - 可执行 jar 中的 "System.out.println()"发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28477529/