java – 究竟是什么System.out?
我注意到,从未通过命令行启动的JAR文件(即用户双击启动的Runnable JAR文件)对System.out.println()的任何调用都不会打开控制台.
做了一些研究后,我在网站上找到了多个答案: > System.out.println in jar
> What happens to “System.out.println()” in executable jar?
据我所知,System.out不代表控制台.它确实代表了可以由需要显示它的任何东西处理的数据. >究竟什么是System.out? 解决方法
现代操作系统(以及几个较旧的操作系统)中的进程获得与之关联的三个标准“流”:
>标准输入:基于流的输入(stdin) 他们被统称(并且创造性地)称为standard streams. 默认情况下,System.in,System.out和System.err是Java用于写入这些流的标准机制. 从命令行调用的程序在命令行中的键击转到stdin的环境中运行,并且stdout和stderr的输出在控制台中显示为文本.它们可以重定向到文件等. 通过GUI启动的程序通常不会将这些流挂钩到您可以看到的任何内容. 我上面说“默认”,因为您可以使用系统上的调用来更改这些流指向的位置(它们具有创新名称,如
那里有一个错误的相关性:罐子可以运行的事实不是你没有看到流的原因.如果在命令行运行可运行的jar,您将看到其标准输出. 如果你在没有与某种控制台相关联的情况下运行它,你是否可以看到该输出将取决于你如何运行它,以及可能如何编写它.许多GUI框架将标准输出重定向并将错误重定向到日志文件.或者应用程序可能提供这样做的调试选项.那里没有一个标准答案(没有双关语). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |