我有一个名为helloworld.jar的JAR文件。 为了运行它,我在命令行窗口中执行以下命令:
java -jar helloworld.jar
这工作得很好,但我如何执行它与双击? 我需要安装什么软件吗?
我有一个名为helloworld.jar的JAR文件。 为了运行它,我在命令行窗口中执行以下命令:
java -jar helloworld.jar
这工作得很好,但我如何执行它与双击? 我需要安装什么软件吗?
当前回答
我正在运行Windows 7 x64,无法使用任何这些修复程序。
这条对我来说还是有用的:
http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi
你可以下载一个包含要运行的.bat文件的存档文件,但请检查实际的javaw.exe!!!!的路径
其他回答
你需要检查一些东西;如果这是您自己的jar文件,请确保在清单中定义了main类。因为我们知道您可以从命令行运行它,所以要做的另一件事是创建一个windows快捷方式,并修改属性(您必须四处查看,我没有windows机器可以查看),以便它在打开时执行的命令是您提到的java -jar命令。
另一件事是:如果某个东西没有混淆,它就应该工作;检查并确保已将Java与.jar扩展名关联。
最简单的方法可能是升级或重新安装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
除了所有其他的建议,还有一件事你需要考虑。你的helloworld.jar是一个控制台程序吗?如果是,那么我不相信您能够将其变成一个可双击的jar文件。控制台程序使用常规的cmd.exe shell窗口作为它们的输入和输出。通常jar“启动器”绑定到javaw.exe,它不会创建命令shell窗口。
不幸的是,这并不容易,因为微软在最近的Windows版本中删除了高级文件关联对话框。-对于较新的Windows版本,您可以只指定将用于打开.jar文件的应用程序。
修复在Windows上打开.jar文件需要两个步骤。
Open the Control Panel, and chose "Default Programs -> Set Associations". Find .jar extension (Executable JAR file) there, and pick Java as default program to open this extension. It will probably be listed as "Java Platform(SE)". A faster alternative perhaps is straightforward right-click on a .jar file, and then change associated program by clicking on the "Change..." button. Now open the regedit, and open the HKEY_CLASSES_ROOT\jarfile\shell\open\command key. Luckilly for us, we may specify parameters there for the (Default) value. On my Windows system it looks like: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %* but in most cases it is the following string: C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
注:
不要在那里使用java.exe,因为它会打开shell窗口。 本线程中提到的jarfix工具很可能只是为您修改注册表。我更喜欢手动注册表更改方法,因为这意味着系统管理员可以将注册表更改“推送”到网络中的所有工作站。
当在命令提示符中启动可运行的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中,并在它完成运行时清理它,因此这可能是一个更优雅的解决方案。