How to run a JAR file
我创建了一个这样的JAR文件:
1 | jar cf Predit.jar *.* |
我双击这个jar文件(它不起作用)。所以我从DOS提示符运行它,如下所示:
1 | java -jar Predit.jar |
它引发了"未能加载主类"异常。所以我提取了这个jar文件:
1 | jar -xf Predit.jar |
我运行了类文件:
1 | java Predit |
效果很好。我不知道JAR文件为什么不能工作。请告诉我运行JAR文件的步骤
您需要在JAR文件清单中指定一个主类。
Oracle的教程包含了一个完整的演示,但这里是另一个从头开始的演示。您需要两个文件:
Test.java:
1 2 3 4 5 6 7 |
MF:
1 2 | Manifest-version: 1.0 Main-Class: Test |
请注意,文本文件必须以新行或回车结束。如果最后一行没有以新行或回车。
然后运行:
1 2 3 | javac Test.java jar cfm test.jar manifest.mf Test.class java -jar test.jar |
输出:
1 | Hello world |
1 | java -classpath Predit.jar your.package.name.MainClass |
运行JAR之前,检查manifest.mf文件中是否有
1 | java -jar filename.jar |
您必须向JAR添加清单,它告诉Java运行时主类是什么。创建包含以下内容的文件"manifest.mf":
1 2 | Manifest-Version: 1.0 Main-Class: your.programs.MainClass |
将"your.programs.mainClass"更改为实际的主类。现在将该文件放入名为"META-INF"的子文件夹中的JAR文件中。您可以使用任何zip实用程序。
创建.class,.jar文件的一种非常简单的方法。
执行JAR文件。不用太担心清单文件。简单易行。
Java示例hello World程序
1 2 3 4 5 |
编译类文件
1 | javac HelloWorld.java |
创建JAR文件
1 | jar cvfe HelloWorld.jar HelloWorld HelloWorld.class |
或
1 | jar cvfe HelloWorld.jar HelloWorld *.class |
运行JAR文件
1 | java -jar HelloWorld.jar |
或
1 | java -cp HelloWorld.jar HelloWorld |
如果不想创建一个清单来运行JAR文件,那么在运行JAR文件时,可以直接从命令行引用主类。
1 | java -jar Predit.jar -classpath your.package.name.Test |
这将设置在JAR文件中运行的主类。
爪哇
MF宣言
1 2 | Manifest-version: 1.0 Main-Class: Hello |
在命令行上:
1 2 | $ jar cfm HelloMss.jar manifest.mf Hello.class $ java -jar HelloMss.jar |
输出:
1 | Hello Shahid |
Eclipse可运行JAR文件
创建一个Java项目——EDCOX1×0
- 如果使用了任何JAR文件,则将它们添加到项目构建路径中。
- 在创建可运行的JAR文件时,选择具有main()的类。
主类
1 2 3 4 5 6 | public class RunnableMainClass { public static void main(String[] args) throws InterruptedException { System.out.println("Name :"+args[0]); System.out.println(" ID :"+args[1]); } } |
使用JAVA程序(CMD)运行JAR文件,通过提供参数并在Eclipse控制台中获取输出和显示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class RunJar { static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { String jarfile ="D:\\JarLocation\\myRunnable.jar"; String name ="Yash"; String id ="777"; try { // jarname arguments has to be saperated by spaces Process process = Runtime.getRuntime().exec("cmd.exe start /C java -jar"+jarfile+""+name+""+id); //.exec("cmd.exe /C start dir java -jar"+jarfile+""+name+""+id+" dir"); BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ())); String line = null; while ((line = br.readLine()) != null){ sb.append(line).append(" "); } System.out.println("Console OUTPUT : "+sb.toString()); process.destroy(); }catch (Exception e){ System.err.println(e.getMessage()); } } } |
在Eclipse中找到捷径:
帮助?帮助内容?Java开发用户指南?参考文献?菜单和操作
如果您不想处理这些细节,也可以使用Eclipse或NetBeans中的导出JAR助手。
我有这个文件夹结构:
D:\JavaProjects\OlivePressApp\com\lynda\olivepress\Main.class
D:\JavaProjects\OlivePressApp\com\lynda\olivepress\press\OlivePress.class
D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Kalamata.class
D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Ligurian.class
D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Olive.class
还有两个其他包:
com.lynda.olivepress.press
com.lynda.olivepress.olive
1)创建一个名为
1 | Main-Class: com.lynda.olivepress.Main |
D:JavaProjectsOlivePressApp
2)使用清单和主类入口点创建JAR
D:JavaProjectsOlivePressApp>
3)运行罐
注:
要运行jar,首先必须创建
executable jar
然后
java -jar xyz.jar
命令有效