我们有一个基于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空指针
在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 举报,一经查实,本站将立刻删除。