1

今天早上,当我在 Windows 7 机器上从命令行执行一个简单的 hello world Java 应用程序时,响应出现在命令下方。像这样的东西:

java HelloWorld 你好世界

现在同样的命令会弹出一个新窗口并立即消失。我输入了 System.console().readLine("enter to continue"); 这正如预期的那样。按下 enter 后,新窗口将关闭。

我该如何防止这种情况发生?(1.7_21)

额外的清晰度:

编码:

public class HelloWorld {
    public static void main() {
        System.out.println("Hello World");
    }
}

采取的步骤:

  1. 通过 Start/Run... cmd 打开一个 DOS 窗口
  2. 在 DOS 窗口中,我 cd 到正确的文件夹
  3. 在 DOS 窗口中输入:java HelloWorld
  4. 一个新的“java”窗口打开大约 1/10 秒(任务栏上的图标是 Java 图标。
  5. 我发出命令: java -verbose HelloWorld
    打开同一个窗口,我可以看到所有类正在加载,但随后立即关闭
    如果我(非常快速地)选择了一些关于加载类的文本,我可以通过任务管理器看到 Java在跑。
  6. 发出命令:java
    我希望得到“使用”回来。相同的窗口出现然后立即消失。

我的问题是,“为什么 java 可执行文件会打开这个 java 窗口?” 在其他机器上,它把它的输出放在同一个 DOS 窗口中。

另请注意,Netbeans 也不在输出窗口中显示输出,在这种情况下,它似乎完全丢失了。我可以单步执行程序,但输出未显示在输出窗口中。

PS 我不是新手,多年来我一直在命令行运行 Java,而这才刚刚开始发生。(不,我不知道发生了什么变化,我相信这台机器从我们公司的安全人员那里收到了某种安全补丁。我无法从他们那里得到什么变化。)

4

3 回答 3

1

当您在 Windows 中运行命令行可执行文件并完成时,这几乎就是应该发生的事情。诊断实际情况的最简单方法是打开一个实际的命令提示符窗口 ( Start->cmd) 并在该窗口中运行命令。

于 2013-05-29T21:57:39.107 回答
0

安装 JDK 8.0.77 后我开始遇到同样的问题。我很肯定新版本与该问题无关。我刚刚通过删除 'C:\ProgramData\Oracle\Java\javapath;' 解决了它 来自 PATH 环境变量。希望这也对您有用(尽管我的回答可能为时已晚)。顺便说一句,我没有遇到过其他依赖于 Java 配置的工具(Maven、Tomcat、Eclipse 等)的问题。

于 2016-04-11T15:25:17.000 回答
0

尝试由管理员运行,它适用于我。

于 2019-08-22T04:06:59.547 回答