微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Windows命令行上基于Eclipse的应用程序输出仅在pipe道中可见不直接在cmd中

我们有一个基于Eclipse的Java应用程序(主类实现IApplication ),它是从Windows命令行启动的。 它在System.out上的输出不可见/打印到启动它的命令窗口中。 尽pipe如此,当输出pipe道more ,输出也很好。 怎么来的?

例如,考虑helloworld.exe 。 在命令窗口中运行C:>helloworld.exe时,应用程序将简单地返回。 但是在运行C:>helloworld.exe | more C:>helloworld.exe | more ,屏幕显示

C:> helloworld.exe | 更多

你好,世界

在Windows cmd上启动Glassfish4空指针

Windows cmd将子命令输出redirect到文件

在FOR / F语句中,用&符号作为分隔符

如何杀死一个Windows应用程序使用TideSDK?

如何在Windows下的cmd窗口中显示日语汉字?

C:>

在Linux上,输出很好。 如何在Windows上查看输出

一些要求的信息:

该应用程序是相当大的。 而且我可能无法削减。 输出是对System.out.prinln("xxx");简单调用System.out.prinln("xxx");

Java版本1.8.0_60 ,Eclipse 3.6.2

使用>std.txt 2>err.txt显示输出确实在stdout上。

行尾是CR / LF

.ini文件如下

--launcher.suppressErrors -vmargs -xms256m -Xmx4096m -Djava.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory -Djava.library.path=plugins

也许这个问题是相关的?

如何使用Windows的waitfor工具

cmd时cmd总是打开一个新窗口

在cmd(bat文件)中运行reg命令?

如何将CRLF作为parameter passing给命令行程序?

WScript回声在UFT中不起作用

您可以使用equinox启动程序启动基于Eclipse RCP的应用程序,如下所示:

java -jar plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar

当然,你必须找到你在RCP应用程序中使用的正确版本的春分启动程序。

这样你会看到控制台日志。

你可以在这里阅读更多关于它: http : //wiki.eclipse.org/index.PHP/Starting_Eclipse_Commandline_With_Equinox_Launcher

编辑:当您使用基于eclipse.exe的启动程序时,无法获取控制台日志的原因是,因为在Windows上的eclipse.exe产生了一个单独的进程,这将导致另一个命令提示符窗口。

如果你的应用程序是通过eclipse.exe启动的(没有控制台附加到它)改变调用使用eclipsec.exe (有一个控制台附加到它,注意应用程序名称中的c )。

你最好使用一个框架来处理你的日志,如logback

这是更便携和可维护。

在你的例子中,似乎你已经从你的java代码创建了一个exe文件。 我的猜测是你用来创建exe文件的打包程序对输出目标做了一些修改,因为它是你的java程序的一个包装。 尝试创建一个jar,然后尝试执行java -jar helloworld.jar。

字符串是stderr而不是stdout? (或其他方式取决于你的预期行为)。

https://support.microsoft.com/en-us/kb/110930

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐