Java:System.out.println()应该写入控制台,但它不会

Dmi*_*ank 8 java console

我正在尝试编写Java控制台应用程序,代码很简单:

public class ConsoleTest {
    public static void main(String[] args) {
        System.out.println("test");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我从Eclipse运行这个应用程序,那么我test在Eclipse的"控制台"中看到" ",但是如果我将我的应用程序导出为" Runnable JAR文件 "并从Windows XP运行它cmd.exe,则没有任何内容回显到控制台.

在安全方面,我试图检查System.console(),它返回null.

有什么不对?

Ale*_*exR 16

你是如何在日食之外运行你的程序的?

你应该使用命令行

java -jar yourjar.jar

要么

java -cp yourjar.jar ConsoleTest

如果您偶尔使用,javaw则不会生成控制台输出.STDOUT javawnull.可能这是当你点击你的jar文件时会发生的事情.

  • @Dmitry Frank,点击jar文件运行程序无论如何都不安全.它取决于扩展名`jar`到客户机上执行它的程序(默认为`javaw`)的映射.许多开发人员将此映射更改为`winzip`,因为他们希望通过单击来查看jar文件的内容.所以,最好的方法是为Windows编写`bat`文件,为Unix执行java程序或使用WebStart的shell脚本. (2认同)

EnK*_*ypt 5

您需要从命令行运行jar文件.

如果双击它,您将无法看到在后台运行的命令行操作.Jar文件通常只在涉及GUI时双击才能运行.

要从命令提示符运行jar文件,只需执行以下操作:

java -jar ConsoleTest.jar
Run Code Online (Sandbox Code Playgroud)

假设您已为java.exe设置环境变量,并且当前目录具有jar文件.

如果这不起作用,则可能不是您的代码错误.指向Main类的清单文件也可能设置错误.