java - Windows 命令行上基于 Eclipse 的应用程序的输出仅在通过管道传输时可见(而不是直接在 cmd 中)

标签 java eclipse windows cmd stdout

我们有一个基于 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,Eclipse 3.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/

相关文章:

windows - Azure VM 与 Docker 无法连接

windows - Rust:如何对SAFESEH图像进行链接不安全

java - 无法获取 Derby 10.15 的驱动程序实例

java - Spring Boot 和 Angular 身份验证 - 如何保护应用程序?

eclipse - 为特定的 Eclipse 构建配置分配键盘快捷键

eclipse - Maven Tomcat项目流程简化

Python os.st_uid 只返回值 0

java - JPanel 未显示

java - application.jar 中没有主要 list 属性

java - Eclipse 何时将资源复制到输出文件夹?