【问题标题】:Console window with javaw?带有javaw的控制台窗口?
【发布时间】:2014-02-18 15:33:43
【问题描述】:

我创建了一个基于控制台的 jar 程序。为了能够使用jarfile.jar 或单击它来运行它,我进入注册表编辑器并编辑了 HKEY_CLASSES_ROOT > jarfile > shell > open > command > (Default) 从[...]javaw.exe[...][...]java.exe[...]。它起作用了,但不是立即起作用 - 我不得不更改默认程序,然后将其更改回几次并用它做很多事情(我不记得确切)。这种方法有两个缺点:一,不打算用控制台运行的可执行 jar 文件现在有一个,这有点烦人;二,如果我想公开发布这个程序,每个想要使用它的人都必须做同样的事情或运行它 java -jar jarfile.jar.

因此,我想知道是否有一种方法可以编辑 jar 的主类以打开不会被 javaw.exe 阻止的自己的控制台窗口,以便我可以使用 javaw 运行 jar 文件。我在想openConsoleWindow(); outputTo(theNewWindow()); inputFrom(theNewWindow());

【问题讨论】:

    标签: java jar console javaw


    【解决方案1】:

    如果我错了,请纠正我 - 你想在不使用命令行的情况下启动你的 .JAR 文件吗?我不知道仅通过打开 jar 来执行此操作的任何方法,但是您始终可以制作一个脚本,该脚本将为您执行命令行操作,只需要打开即可。那个或某种形式的启动器。

    【讨论】:

    • 这是可能的,但默认情况下它是由 javaw.exe 打开的,它不显示控制台窗口,并且用 java.exe 打开它有我在 OP 中描述的缺点,所以我在寻找一种在 java 代码中创建控制台窗口的方法,希望在使用 javaw 运行时不会被阻止。我宁愿能够直接运行 jar 而不是使用脚本。
    • @Blrp 另一个解决方案可能是,如果您的程序检测到是否使用了 java 或 javaw,并且当您使用 javaw 时,它将使用 cmd.exe /c start java parameters_go_here 重新启动以获取控制台窗口
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多