我有一个名为helloworld.jar的JAR文件。 为了运行它,我在命令行窗口中执行以下命令:
java -jar helloworld.jar
这工作得很好,但我如何执行它与双击? 我需要安装什么软件吗?
我有一个名为helloworld.jar的JAR文件。 为了运行它,我在命令行窗口中执行以下命令:
java -jar helloworld.jar
这工作得很好,但我如何执行它与双击? 我需要安装什么软件吗?
当前回答
在windows上运行.jar文件有很多方法。其中一个正在使用命令提示符。
步骤:
打开命令提示符(以管理员身份运行) 现在为根目录写入“cd\”命令 输入“java jar文件名。jar” 注意:你也可以使用任何第三方应用程序,如WinRAR, jarfix等。
其他回答
最简单的方法可能是升级或重新安装Java运行时环境(JRE)。
或:
Open the Windows Explorer, from the Tools select 'Folder Options...' Click the File Types tab, scroll down and select JAR File type. Press the Advanced button. In the Edit File Type dialog box, select open in Actions box and click Edit... Press the Browse button and navigate to the location the Java interpreter javaw.exe. In the Application used to perform action field, needs to display something similar to C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" % (Note: the part starting with 'javaw' must be exactly like that; the other part of the path name can vary depending on which version of Java you're using) then press the OK buttons until all the dialogs are closed.
这是从这里偷来的:http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html
创建.bat文件:
start javaw -jar %*
然后选择app default,用这个。bat文件打开。jar。
当启动.jar文件时,它将关闭cmd。
有一种方法不需要用户在他的PC上做改变。runtime . getrtime .exec()允许我们启动cmd.exe并在其中执行命令。因此,当用户单击.jar文件时,java程序可以在命令提示符下自行运行。
public static void main(String[] args) throws IOException {
if(args.length == 0) {
Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
} else {
//code to be executed
}
}
当在命令提示符中启动可运行的jar文件时,这会导致一个有趣的副作用。
如果你尝试(在命令提示符中):
jarfile.jar parameter
没有乐趣,因为这将被翻译成以下内容(这并不管用):
javaw.exe -jar jarfile.jar parameter
但是,下面的命令是可以工作的:
java.exe -jar jarfile.jar parameter
如果你在文件管理器中修改关联,如上所述:
"C:\Program Files\Java\j2re1.4.2_04\bin\java.exe" -jar "%1" %*
然后你可以输入:
jarfile.jar parameter
在命令提示符中,它现在将工作!
编辑:(然而,当你运行一个基于窗体(非控制台)的Java应用程序时,你会得到一个黑色的控制台窗口,所以这不是一个理想的解决方案)
如果您通过在窗口中双击这些jar文件来运行这些jar文件,则不会传递任何参数,因此您的Java代码需要处理堆栈溢出异常,并在最后包含“按下键”函数,否则窗口将会消失。
为了在windows中传递参数,您必须创建一个jar文件的快捷方式,该快捷方式包括目标行中的参数(右键单击快捷方式并选择属性),您不能以这种方式将参数添加到jar文件图标本身。
这里没有一个统一的解决方案,但是任何其他控制台应用程序都会遇到相同的问题。
有一个windows免费应用程序叫做“bat to exe”,你可以用它从一个。bat文件创建一个exe文件,里面有适当的命令行。您还可以将jar文件嵌入到这个应用程序的exe中,并在它完成运行时清理它,因此这可能是一个更优雅的解决方案。
首先在cmd(命令提示符)上设置路径:
set path="C:\Program Files\Java\jre6\bin"
然后输入
java -jar yourProgramname.jar