我有一个名为 helloworld.jar 的JAR文件。 为了运行它,我在命令行窗口中执行以下命令:
java -jar helloworld.jar
这样可以正常工作,但是如何通过双击来执行它呢? 我需要安装任何软件吗?
答案 0 :(得分:109)
最简单的路由可能是升级或重新安装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
答案 1 :(得分:76)
在Windows Vista或Windows 7中,manual file association editor已被删除。
最简单的方法是运行Jarfix,一个小巧但功能强大的免费软件工具。只需运行它,您的Java应用程序就可以了......再次双击。
答案 2 :(得分:47)
如果您需要分发.jar文件并使其可以在其他人的Windows计算机上运行, 你可以在命令提示符下创建一个简单的.bat文件:
java -jar MyJavaTool.jar
并将.bat文件放在与.jar文件相同的目录中。
答案 3 :(得分:23)
如果您有一个名为Example.jar的jar文件,请遵循以下规则:
notepad.exe
java -jar Example.jar
.bat
.jar
文件.jar
文件答案 4 :(得分:15)
这会产生一个有趣的副作用,在命令提示符下启动可运行的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应用程序时,您将获得黑色控制台窗口,因此这不是一个理想的解决方案)
如果你通过在windows中双击它们来运行这些jar文件,那么就不会传递任何参数,所以你的Java代码需要处理堆栈溢出异常并在最后包含一个“按键”功能,否则窗口就会消失
为了在Windows中传递参数,您必须创建jar文件的快捷方式,其中包括目标行中的参数(右键单击快捷方式并选择属性)您无法将参数添加到jar文件图标本身就是这样。
这里没有单一,一致的解决方案,但是你会遇到与任何其他控制台应用程序相同的问题。
有一个名为“bat to exe”的Windows免费应用程序,您可以使用该应用程序从.bat文件创建一个exe文件,其中包含适当的命令行。您也可以使用此应用程序将jar文件嵌入到exe文件中,并在运行完成后将其清理干净,这可能是一个更优雅的解决方案。
答案 5 :(得分:11)
cmd上的第一个设置路径(命令提示符):
set path="C:\Program Files\Java\jre6\bin"
然后输入
java -jar yourProgramname.jar
答案 6 :(得分:8)
在Windows XP * 中,您只需要2个 shell 命令:
C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %*
C:\>assoc .jar=myjarfile
显然使用JRE的正确路径和您想要的任何名称而不是myjarfile
。
要检查当前设置:
C:\>assoc .jar
C:\>ftype jarfile
这次使用第一个命令返回的值(如果有的话),而不是jarfile
。
* 未使用Windows 7进行测试
答案 7 :(得分:7)
无需用户在PC上进行更改即可。 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
}
}
答案 8 :(得分:6)
除了所有其他建议外,还有一件事需要考虑。你的helloworld.jar是一个控制台程序吗?如果是,那么我不相信你能够把它变成一个可双击的jar文件。控制台程序使用常规cmd.exe shell窗口进行输入和输出。通常jar“launcher”绑定到javaw.exe,它不会创建命令shell窗口。
答案 9 :(得分:5)
我正在运行Windows 7 x64,但无法使用任何这些修复程序。
毕竟这个对我有用:
http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi
您可以下载包含要运行的.bat文件的存档,但请检查实际javaw.exe的路径!!!!
答案 10 :(得分:3)
你想检查一些事情;如果这是您自己的jar文件,请确保已在清单中定义了Main-class。既然我们知道你可以从命令行运行它,那么另一件事就是创建一个windows快捷方式,并修改属性(你必须环顾四周,我没有一台Windows机器可以查看)所以它在open上执行的命令是你提到的java -jar命令。
另一件事:如果事情没有混淆,无论如何都应该有效;检查并确保你有与.jar扩展名相关联的java。
答案 11 :(得分:2)
在注册表中,打开HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command
双击左侧的默认值,并在java.exe
路径和“%1
”参数之间添加-jar。
答案 12 :(得分:1)
在 Windows 10 上遇到同样的问题
解决方案:
.jar
和javaw.exe
之间的关联答案 13 :(得分:1)
PreScript :如果出现提示并立即消失,则其原因是程序被执行并自动关闭。尝试将扫描仪末端放置以终止,它将在终止之前让您的提示等待输入。 (或者使用延迟)
在同样的情况下,从cmd运行.jar可以正常工作,但是双击却无济于事。
解决方案: 打开任何文本编辑器并编写命令行: java -jar Example.jar 将文件另存为.bat文件。 运行此bat文件以获取所需的输出。
向前迈出一步,您可以使用简单的GUI工具(如Bat To Exe Converter)将此bat文件转换为exe文件。
现在,您可以在.exe文件中以分发形式共享.jar,任何人都可以使用,只需确保将所有文件保存在一起即可。 (特别是.jar和.bat文件导致.bat只是一个cmd提示符)(它的逻辑性)
我对开发和学习非常陌生。如果犯了任何错误,请原谅。欢迎提出建议。
答案 14 :(得分:1)
我在Windows 10中遇到了同样的问题。我使用“ helloworld.jar ”上的 righ-click 修复了它,然后转到属性然后点击“打开方式:”下的更改按钮,然后选择“在此电脑上查找其他应用”。在“打开方式... ”对话框中,转到PC上的Java文件夹位置并打开相应的jdk文件夹,然后打开 bin 文件夹并选择“<强> javaw.exe “从那里。然后,下次“ helloworld.jar ”将以正常方式打开。
通常的java位置示例:“ C:\ Program Files(x86)\ Java \ jdk1.8.0_111 \ bin ”。
答案 15 :(得分:1)
通过单击/双击运行jar文件的另一种方法是将“-jar”添加到
文件名。例如,您可以将文件 MyJar.jar
重命名为 -jar MyJar.jar
。
当然,您必须拥有与.class
相关联的java.exe
个文件。这可能不适用于所有情况,但它对我来说大部分时间都有效。
答案 16 :(得分:1)
不幸的是,微软在最近的Windows版本中删除了高级文件关联对话框并不容易。 - 对于较新的Windows版本,您只能指定将用于打开.jar文件的应用程序。
在Windows上修复.jar文件打开需要两个步骤。
打开控制面板,然后选择&#34;默认程序 - &gt;设置关联&#34;。在那里找到.jar扩展名(可执行文件JAR文件),然后选择Java作为默认程序来打开此扩展名。它可能会被列为&#34; Java平台(SE)&#34;。更快的替代方案可能是直接右键单击.jar文件,然后通过单击&#34;更改...&#34;更改关联的程序。按钮。
现在打开注册表,然后打开HKEY_CLASSES_ROOT\jarfile\shell\open\command
键。 Luckilly对我们来说,我们可以为(Default)
值指定参数。在我的Windows系统上,它看起来像:C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*
,但在大多数情况下,它是以下字符串:C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
注意:
java.exe
使用,因为它会打开shell窗口。答案 17 :(得分:0)
如果您需要通过双击运行jar文件,则必须将其创建为&#34; Runnable JAR &#34;。您只需使用IDE即可完成。
如果您正在使用eclipse,请按以下步骤操作:
for($day1=$day; $day1<=2; $day1++)
{
$option = array('day' => $day1)
$train = $train_xpath->query('//li/div/div[contains(@class, "smallFont farelist")]');
if($train->length > 0)
{
foreach($train as $f)
{
$time_s = $train_xpath->evaluate('string(./div[@class="train-time"]/text()[1])', $f);
$time_e = $train_xpath->evaluate('string(./div[@class="train-time"]/text()[2])', $f);
$fare = $train_xpath->evaluate('string(./div[@class="train-info"]/div/div[@class="total-price"])', $f);
$option["value"][]= array('flight_no' => $train_xpath->evaluate('string(./div[@class="train-no"])', $f),
'departure_time' => "$time_s ",
'arrival_time' => "$time_e ",
'price' => $fare );
}
}
$train_list['option'][] = $option;
}
可以在Eclipse帮助页面上找到更多信息:LINK
答案 18 :(得分:0)
在Windows上运行.jar文件有很多methods。其中一个是使用命令提示符。
步骤:
答案 19 :(得分:0)
制作一个start.bat是唯一对我有用的东西。
打开文本文档并输入。 java -jar 无论你的名字是什么 .jar
将start.bat保存在与要执行的.jar文件相同的文件夹中。然后运行。蝙蝠
答案 20 :(得分:0)
步骤:
1。)在Google上搜索Java SE Runtime Environment:https://www.google.com/search?q=Java+SE+Runtime+Environment
2。)在计算机上安装适当的版本
答案 21 :(得分:0)
创建.bat
文件:
start javaw -jar %*
然后选择“应用默认设置”以使用此.jar
文件打开.bat
。
启动cmd
文件时,它将关闭.jar
。
答案 22 :(得分:0)
用于编译:
javac -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java
运行:
java -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
答案 23 :(得分:0)
实际上,我也遇到了这个问题,
我通过为jar文件制作一个.bat运行程序来解决它
这是代码:
class FileHandler{
public static File create_CMD_Rnner(){
int exitCode = -1625348952;
try{
File runner = new File(Main.batName);
PrintWriter printer = new PrintWriter(runner);
printer.println("@echo off");
printer.println("title " + Main.applicationTitle);
printer.println("java -jar " + Main.jarName + " " + Main.startCode );
printer.println("PAUSE");
printer.flush();
printer.close();
return runner;
}catch(Exception e){
System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
System.exit(exitCode);
return null;
}
}
}
然后在您的Main应用程序类中执行以下操作:
public class Main{
static String jarName = "application.jar";
static String applicationTitle = "java Application";
static String startCode = "javaIsTheBest";
static String batName = "_.bat";
public static void main(String args[]) throws Exception{
if(args.length == 0 || !args[0].equals(startCode)) {
Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
System.exit(0);
}else{
//just in case you wanted to hide the bat
deleteRunner();
// Congratulations now you are running in a cmd window ... do whatever you want
//......
System.out.println("i Am Running in CMD");
//......
Thread.sleep(84600);
}
}
public static void deleteRunner(){
File batRunner = new File(batName);
if(batRunner.exists()) batRunner.delete();
}
}
此代码(我的代码)仅适用于jar文件,不适用于类文件。
jar文件的名称必须与主类的字符串“ jarName”相同
答案 24 :(得分:0)
如果使用eclipse制作java文件,可以选择将其导出为可运行的jar文件。我用我的程序做了这个,我可以点击jar就可以了。这将适用于两个窗口以及os x。
答案 25 :(得分:-1)
在您的jar目录(jar存在的位置)中,创建一个扩展名为.bat
且内容为java -jar yourJarName.jar
的文件并保存。
现在你可以双击这个bat文件来运行你的jar。