当前位置: 首页 > 知识库问答 >
问题:

双击JAR文件不打开命令提示符

巫马淳
2023-03-14

我想通过双击一个Jar文件来运行它。

下面是其中唯一的Java类文件。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Sysout{
public static void main(String[] args) throws IOException{
    System.out.println("Hello World!");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String msg = br.readLine();
    System.out.println(msg);
    br.read();
}
}

并且清单文件已经定义了Main-Class。

共有1个答案

杨轶
2023-03-14

当您使用JavaW关联时,它不会创建命令窗口,而是吞下所有system.outsystem.err调用。

您应该用Java二进制文件重新关联.jar文件,该文件应该显示必要的命令窗口。

如果使用简单的open with...选项,它将从命令行中省略-jar选项。

打开一个administrator命令窗口(如果您使用Vista或Windows 7并启用了UAC,则需要这样做),然后执行以下操作:

assoc .jar=jarfileterm
ftype jarfileterm="C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*

在您的示例中,应该将C:\program files\java\jre7\bin\java.exe路径替换为安装JRE的路径。

当您双击以下内容时,它应该会正确运行。

您可以添加另一个FTYPE:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

再次将javaw二进制文件的路径替换为系统的路径。

您现在应该能够通过交替选择Assoc.jar=jarfiletermAssoc.jar=jarfile在窗口和非窗口之间切换

如果您希望在运行。jar后保持命令窗口不变,那么您可以使用cmd/s/k来环绕java命令的调用,即:

ftype jarfileterm=cmd /s /k ""C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*"
assoc .jar=jarfileterm

启动regedit,并在HKEY_CLASSES_ROOT下搜索一个名为.jar的键--这将导致它下面有一个名为(默认值)的值,如果ftype命令调用有效,则该值应为JARFILETERM。如果它不起作用,那么您将看到一个可能由另一个应用程序创建的关联(我不知道java更新程序是否替换了这些条目,但如果它替换了,那么这可能是问题所在)

接下来需要在hkey_classes_root中查找此键。它将找到这个条目,该条目应该包含一个键shell(即展开文件夹jarfileterm,它应该显示另一个文件夹shell),该文件夹包含一个键open,该键包含一个键command,该值包含一个(Default)值,该值应该包含启动.jar文件的调用命令。该命令应该与您键入的最后一个ftype jarfileterm=...条目匹配。如果不匹配,则应使其匹配cmd/s/k或“c:\program files\java\jre7\bin\java.exe”选项之一(这取决于您是否希望在启动时出现错误时保持命令窗口)

 类似资料:
  • 环顾四周之后,我发现有人说jar文件所关联的javaw没有控制台,我需要将jar文件与java.exe而不是javaw.exe关联。我试过这个,似乎不起作用。 有人能帮忙吗?一步一步就好了。

  • 我最近完成了一个项目,它在我的Eclipse IDE中以多个文件和单个文件的形式工作。

  • 问题内容: 我有一个包含以下代码的Java桌面应用程序: 当我通过执行“ java -jar name.jar”运行此应用程序的相应.jar文件时,check1和check2均被打印,并且应用程序正常运行。但是,当我尝试通过双击.jar文件运行jar时,我发现ToolProvider.getSystemJavaCompiler()返回null。不会打印“ check2”。我没有从editor.ru

  • 当我通过执行“java-jar name.jar”来运行这个应用程序的相应的。jar文件时,check1和check2都会被打印出来,app工作正常。但是当我试图通过双击。jar文件来运行jar时,我发现ToolProvider.getSystemJavaCompiler()返回null。“check2”不打印。我没有从compiler.run()中得到正确的结果。 我确实将注册表项“\hkey_

  • 我有一个。jar文件,我希望通过双击它而不是命令行打开它。当我双击它时,无论它是用javaw.exe打开的,我都希望它在双击它时用java.exe打开。

  • 问题内容: 我们如何在命令提示符下运行jar文件? 问题答案: 尝试这个