我想通过双击一个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。
当您使用JavaW
关联时,它不会创建命令窗口,而是吞下所有system.out
和system.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=jarfileterm
和Assoc.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文件? 问题答案: 尝试这个