如何运行一个JAR文件
我创build了一个像这样的JAR文件:
jar cf Predit.jar *.*
我通过双击运行这个JAR文件(它没有工作)。 所以我从这个DOS提示符运行它:
java -jar Predit.jar
它提出了“无法加载主类”的例外。 所以我提取了这个JAR文件:
jar -xf Predit.jar
我跑了类文件:
java Predit
它运作良好。 我不知道为什么JAR文件不起作用。 请告诉我运行JAR文件的步骤
您需要在jar文件清单中指定一个Main-Class。
Oracle的教程包含一个完整的演示,但是这里是另一个从头开始。 你需要两个文件:
Test.java:
public class Test { public static void main(String[] args) { System.out.println("Hello world"); } }
MANIFEST.MF:
Manifest-version: 1.0 Main-Class: Test
请注意,文本文件必须以换行或回车结束。 如果最后一行不以新行或回车结束,则不会正确parsing。
然后运行:
javac Test.java jar cfm test.jar manifest.mf Test.class java -jar test.jar
输出:
Hello world
java -classpath Predit.jar your.package.name.MainClass
你必须添加一个清单到jar,它告诉java运行时主要的类是什么。 使用以下内容创build一个文件“Manifest.mf”:
Manifest-Version: 1.0 Main-Class: your.programs.MainClass
将“your.programs.MainClass”更改为您的实际主类。 现在把这个文件放到名为'META-INF'的子文件夹中的jar文件中。 你可以使用任何的ZIP实用程序。
如果您不想创build仅用于运行jar文件的清单,则可以在运行jar文件时直接从命令行引用main-class。
java -jar Predit.jar -classpath your.package.name.Test
这设置在jar文件中运行哪个主类。
如果你不想处理这些细节,你也可以使用来自Eclipse或NetBeans的导出jar助手。
在运行jar检查之前Main-Class:classname可用或不在MANIFEST.MF文件中。 MAINFEST.MF存在于jar子里。
java -jar filename.jar
Java的
class Hello{ public static void main(String [] args){ System.out.println("Hello Shahid"); } }
MANIFEST.MF
Manifest-version: 1.0 Main-Class: Hello
在命令行上:
$ jar cfm HelloMss.jar manifest.mf Hello.class $ java -jar HelloMss.jar
输出:
Hello Shahid
Eclipse Runnable JAR文件
创build一个Java项目 – RunnableJAR
- 如果使用任何jar文件 ,然后将它们添加到项目构buildpath。
- 在创buildRunnable Jar文件时select具有main()的类。
主要类
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控制台中。
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("\n"); } System.out.println("Console OUTPUT : \n"+sb.toString()); process.destroy(); }catch (Exception e){ System.err.println(e.getMessage()); } } }
在Eclipse中find捷径 :
帮助►帮助目录►Java开发用户指南►参考资料►菜单和操作
我有这个文件夹结构:
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
Main.class
在包com.lynda.olivepress
还有两个包:
com.lynda.olivepress.press
com.lynda.olivepress.olive
1)用两行创build一个名为"Manifest.txt"
的文件,首先是Main-Class和第二个空行。
Main-Class: com.lynda.olivepress.Main
D:\ JavaProjects \ OlivePressApp \ Manifest.txt
2)用Manifest和Main-Class入口创buildJAR
D:\ JavaProjects \ OlivePressApp> jar cfm OlivePressApp.jar Manifest.txt com/lynda/olivepress/Main.class com/lynda/olivepress/*
3)运行JAR
java -jar OlivePressApp.jar
注意: com/lynda/olivepress/*
表示包括上面提到的其他两个包,在1)
创build.class,.jar文件的一个非常简单的方法。
执行jar文件。 无需担心清单文件太多。 使它简单和优雅。
Java示例Hello World程序
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
编译类文件
javac HelloWorld.java
创buildjar文件
jar cvfe HelloWorld.jar HelloWorld HelloWorld.class
要么
jar cvfe HelloWorld.jar HelloWorld *.class
运行jar文件
java -jar HelloWorld.jar
要么
java -cp HelloWorld.jar HelloWorld
要运行jar,首先你必须创build
可执行的jar
然后
java -jar xyz.jar
命令将起作用