如何运行一个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

命令将起作用