8

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

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

如果我从 Eclipse 运行此应用程序,那么我test会在 Eclipse 的“控制台”中看到“”,但如果我将我的应用程序导出为“可运行的JAR 文件”并从 Windows XP 运行它cmd.exe,那么控制台不会回显任何内容。

为了安全起见,我尝试检查System.console(),它返回null

有什么问题?

4

6 回答 6

16

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

你应该使用命令行

java -jar yourjar.jar

或者

java -cp yourjar.jar ConsoleTest

如果您偶尔使用javaw,则不会产生控制台输出。的标准输出javawnull。当您单击 jar 文件时,可能会发生这种情况。

于 2012-05-01T17:15:53.793 回答
5

您需要从命令行运行您的 jar 文件。

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

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

java -jar ConsoleTest.jar

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

如果这不起作用,那么很可能不是您的代码的错。还有可能指向 Main 类的清单文件设置不正确。

于 2012-05-01T17:14:25.027 回答
2

尝试从命令行将其编译成一个类,然后运行它。那样有用吗?

javac ConsoleTest.java
java ConsoleTest
于 2012-05-01T17:12:17.530 回答
1

您的可运行 jar 文件可能没有按预期工作,并且实际上没有运行您的 ConsoleTest 类。

于 2012-05-01T17:10:35.403 回答
0

就像 Hovercraft Full Of Eels 写的一样,使用 cmd.exe 使用以下命令编译 .java 文件:

javac ConsoleTest.java

然后这将创建一个 .class 文件,我们想用这个命令编译它:

java ConsoleTest

然后它应该显示“测试”输出。

于 2012-05-01T17:13:20.087 回答
-2

您必须安装 java jdk 并将包含文件 java.exe 的目录的根添加到系统目录中,您将在 jdk 的安装指南中找到更多信息。

然后使用命令在控制台中运行该文件

> java file.java
于 2012-05-01T17:14:33.460 回答