我们有一个基于 Eclipse 的 Java 应用程序(主类实现 IApplication
),它是从 Windows 命令行启动的。它在 System.out
上的输出不可见/打印到启动它的命令窗口中。然而,当将输出通过管道传输到 more
时,输出没有问题。怎么会?
例如,考虑helloworld.exe
。在命令窗口中运行 C:\>helloworld.exe
时,应用程序只会返回。但是当运行 C:\>helloworld.exe |更多
,屏幕显示
C:>helloworld.exe | more
hello world
C:>
在 linux 上,输出很好。如何在 Windows 上也看到输出?
一些要求的信息:
- 应用程序非常大。我可能无法削减它。输出是对
System.out.prinln("xxx");
的简单调用
- Java 版本
1.8.0_60
,Eclipse3.6.2
- 使用
>std.txt 2>err.txt
显示输出确实在标准输出上。 - 行尾为 CR/LF
.ini
文件如下
--launcher.suppressErrors
-vmargs
-Xms256m
-Xmx4096m
-Djava.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory
-Djava.library.path=plugins
也许 this issue有关系吗?
最佳答案
如果您的应用程序以某种方式通过 eclipse.exe
启动(没有连接到它的控制台)更改调用以使用 eclipsec.exe
(连接到一个控制台)它,请注意应用程序名称中的 c
。
关于java - Windows 命令行上基于 Eclipse 的应用程序的输出仅在通过管道传输时可见(而不是直接在 cmd 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568971/