【问题标题】:Is there a way to the hide win32 launch console from a Java program (if possible without JNI)有没有办法从 Java 程序中隐藏 win32 启动控制台(如果可能没有 JNI)
【发布时间】:2010-09-20 20:25:12
【问题描述】:

您从控制台启动一个 java 程序(可能使用 .bat 脚本)。 我不想让控制台保持可见,我想隐藏它。

有没有简单的方法来做到这一点?没有 JNI 吗?

【问题讨论】:

    标签: java winapi console


    【解决方案1】:

    使用 javaw。

    http://java.sun.com/javase/6/docs/tooldocs/windows/java.html

    javaw 命令与 java 相同,只是 javaw 没有关联的控制台窗口。当您不希望出现命令提示符窗口时,请使用 javaw。但是,如果由于某种原因启动失败,javaw 启动器将显示一个包含错误信息的对话框。

    【讨论】:

    • 我冒昧地将链接更新到一个已经有一段时间没有被淘汰的版本了。
    • 调用 javaw -jar 允许您关闭控制台窗口而不停止执行您正在运行的 jar。问题是如果您从 bat 文件中调用 javaw,窗口仍然保持打开状态。在批处理文件中,在 javaw 命令前添加 start:start javaw -jar jarName.jar
    • Javaw.exe 是最好的方法!尝试操作 CreateProcess 的参数将不起作用,因为 java.exe 创建控制台,而不是 CreateProcess。
    【解决方案2】:

    您可以使用 javaw.exe(没有 java)而不是使用 java.exe 来隐藏控制台。

    要设置的最有用的关联之一是使用 java.exe 使 *.jar 文件可执行。然后,您只需在命令行上键入 jar 的名称即可开始执行。

    如果您使用 javaw.exe 而不是 java.exe,您将看不到控制台输出。请注意,Java 安装程序通常将 *.jar 文件与 javaw.exe 而不是 java.exe 关联,从而覆盖您的设置。

    【讨论】:

      【解决方案3】:

      这个 .bat 技巧适用于一般程序,所以我认为它也适用于启动 java 程序:

      在您的 .bat 脚本中调用 start program 而不仅仅是 program

      【讨论】:

        【解决方案4】:

        如果从文件运行,你的脚本应该看起来像 start javaw start javaw -jar ***.jar

        【讨论】:

          【解决方案5】:

          您可以使用start javaw 启动Java 应用程序。它会隐藏黑色的控制台窗口。

          【讨论】:

            【解决方案6】:

            下载 jsmooth 并在一两分钟内创建您自己的自定义 exe。然后只需使用该 exe 启动您的 java 应用程序。您甚至可以将 JRE 与您的应用程序捆绑在一起。

            http://jsmooth.sourceforge.net

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-04-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-05-05
              相关资源
              最近更新 更多