加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 究竟是什么System.out?

发布时间:2020-12-15 04:29:19 所属栏目:Java 来源:网络整理
导读:我注意到,从未通过命令行启动的JAR文件(即用户双击启动的Runnable JAR文件)对System.out.println()的任何调用都不会打开控制台. 做了一些研究后,我在网站上找到了多个答案: System.out.println in jar There is no problem doing like that. But where do y
我注意到,从未通过命令行启动的JAR文件(即用户双击启动的Runnable JAR文件)对System.out.println()的任何调用都不会打开控制台.

做了一些研究后,我在网站上找到了多个答案:

> System.out.println in jar

There is no problem doing like that. But where do you expect to see the output?

> What happens to “System.out.println()” in executable jar?

If you run the code in some way that doesn’t attach a console – such as javaw on Windows,which is the default program associated with executable jar files – then the output won’t go anywhere. It won’t cause any errors – the text will just be lost.

据我所知,System.out不代表控制台.它确实代表了可以由需要显示它的任何东西处理的数据.
我对吗?

>究竟什么是System.out?
>如何通过双击从用户启动的Runnable JAR文件打开控制台?

解决方法

现代操作系统(以及几个较旧的操作系统)中的进程获得与之关联的三个标准“流”:

>标准输入:基于流的输入(stdin)
>标准输出:基于流的输出(标准输出)
>标准错误:基于流的错误输出(stderr)

他们被统称(并且创造性地)称为standard streams.

默认情况下,System.in,System.out和System.err是Java用于写入这些流的标准机制.

从命令行调用的程序在命令行中的键击转到stdin的环境中运行,并且stdout和stderr的输出在控制台中显示为文本.它们可以重定向到文件等.

通过GUI启动的程序通常不会将这些流挂钩到您可以看到的任何内容.

我上面说“默认”,因为您可以使用系统上的调用来更改这些流指向的位置(它们具有创新名称,如setIn,setOutsetErr.)

How do I open the console from a Runnable JAR file started by user with double-click?

那里有一个错误的相关性:罐子可以运行的事实不是你没有看到流的原因.如果在命令行运行可运行的jar,您将看到其标准输出.

如果你在没有与某种控制台相关联的情况下运行它,你是否可以看到该输出将取决于你如何运行它,以及可能如何编写它.许多GUI框架将标准输出重定向并将错误重定向到日志文件.或者应用程序可能提供这样做的调试选项.那里没有一个标准答案(没有双关语).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读