Don*_*onX 215 java jar executable-jar
我有一个名为helloworld.jar的JAR文件.为了运行它,我在命令行窗口中执行以下命令:
java -jar helloworld.jar
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如何通过双击执行它?我需要安装任何软件吗?
Bri*_*lly 118
最简单的路由可能是升级或重新安装Java Runtime Environment(JRE).
或这个:
C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(注意:以'javaw'开头的部分必须完全相同;路径名的其他部分可能因您使用的Java版本而异)然后按OK按钮直到关闭所有对话框.这是从这里偷来的:http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html
小智 51
如果您需要分发.jar文件并使其可以在其他人的Windows计算机上运行,您可以在命令提示符中创建一个简单的.bat文件:
java -jar MyJavaTool.jar
Run Code Online (Sandbox Code Playgroud)
并将.bat文件放在与.jar文件相同的目录中.
小智 23
如果您有一个名为Example.jar的jar文件,请遵循以下规则:
notepad.exejava -jar Example.jar.bat.jar文件的目录.jar文件Bob*_*Bob 15
在命令提示符下启动可运行的jar文件时,这会产生一个有趣的副作用.
如果您尝试(在命令提示符下)
jarfile.jar参数
没有快乐,因为这被翻译成以下(不起作用):
javaw.exe -jar jarfile.jar参数
但是以下命令确实有效:
java.exe -jar jarfile.jar参数
如果您将文件管理器中的关联更改为:
"C:\ Program Files\Java\j2re1.4.2_04\bin\java.exe"-jar"%1"%*
然后你可以输入:
jarfile.jar参数
在命令提示符下,它现在可以工作!编辑:(但是,当你运行基于表单的(非控制台)Java应用程序时,你会得到一个黑色的控制台窗口,所以这不是一个理想的解决方案)
如果你通过在windows中双击它们来运行这些jar文件,那么就不会传递任何参数,所以你的Java代码需要处理堆栈溢出异常并在最后包含一个"按键"功能,否则窗口就会消失.
要在Windows中传递参数,您必须创建jar文件的快捷方式,其中包含目标行中的参数(右键单击快捷方式并选择属性),您无法在此处向jar文件图标本身添加参数办法.
这里没有单一,一致的解决方案,但是你会遇到与任何其他控制台应用程序相同的问题.
有一个名为"bat to exe"的Windows免费应用程序,您可以使用它从.bat文件创建一个exe文件,其中包含适当的命令行.您还可以使用此应用程序将jar文件嵌入到exe文件中,并在运行完成后将其清理干净,这样这可能是一个更优雅的解决方案.
小智 11
首先在cmd上设置路径(命令提示符):
set path="C:\Program Files\Java\jre6\bin"
Run Code Online (Sandbox Code Playgroud)
然后键入
java -jar yourProgramname.jar
Run Code Online (Sandbox Code Playgroud)
在Windows XP *中,您只需要2个shell命令:
C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %*
C:\>assoc .jar=myjarfile
Run Code Online (Sandbox Code Playgroud)
显然使用JRE的正确路径和您想要的任何名称而不是myjarfile.
要检查当前设置:
C:\>assoc .jar
C:\>ftype jarfile
Run Code Online (Sandbox Code Playgroud)
这次使用第一个命令返回的值,如果有的话,而不是jarfile.
* 未经Windows 7测试
有办法不需要用户在他的电脑上进行更改.Runtime.getRuntime.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
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
除了所有其他建议,还有一件事你需要考虑.你的helloworld.jar是一个控制台程序吗?如果是,那么我不相信你能够把它变成一个可双击的jar文件.控制台程序使用常规cmd.exe shell窗口进行输入和输出.通常jar"启动器"绑定到javaw.exe,它不会创建命令shell窗口.
小智 6
在注册表中,打开 HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command
双击左侧的 default 并在java.exe路径和“ %1”参数之间添加 -jar 。
小智 5
我正在运行Windows 7 x64,但无法使用任何这些修复程序.
这个对我来说是有用的:
http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi
有一个存档,您可以下载包含要运行的.bat文件,但检查实际javaw.exe的路径!
| 归档时间: |
|
| 查看次数: |
1114601 次 |
| 最近记录: |