如何运行JAR文件

时间:2009-08-06 10:43:01

标签: java jar

我创建了一个这样的JAR文件:

jar cf Predit.jar *.*

我通过双击它来运行这个JAR文件(它不起作用)。所以我从DOS提示符运行它:

java -jar Predit.jar

它引发了“无法加载主类”异常。所以我解压缩了这个JAR文件:

jar -xf Predit.jar

我运行了类文件:

java Predit

效果很好。我不知道为什么JAR文件不起作用。请告诉我运行JAR文件的步骤

10 个答案:

答案 0 :(得分:191)

您需要在jar文件清单中指定Main-Class。

Oracle的tutorial包含完整的演示,但这是另一个从头开始的演示。您需要两个文件:

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

请注意,文本文件必须以新行或回车符结束。 如果它不以a结尾,则不会正确解析最后一行 新线或回车。

然后运行:

javac Test.java
jar cfm test.jar manifest.mf Test.class
java -jar test.jar

输出:

Hello world

答案 1 :(得分:51)

java -classpath Predit.jar your.package.name.MainClass

答案 2 :(得分:14)

您必须向jar添加一个清单,它告诉Java运行时主类是什么。 使用以下内容创建文件'Manifest.mf':

Manifest-Version: 1.0
Main-Class: your.programs.MainClass

将'your.programs.MainClass'更改为您的实际主类。现在将文件放入Jar文件中,名为“META-INF”的子文件夹中。您可以使用任何ZIP实用程序。

答案 3 :(得分:11)

创建.class,.jar文件的一种非常简单的方法。

执行jar文件。无需过多担心清单文件。让它变得简单和优雅。

Java示例Hello World计划

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

编译类文件

javac HelloWorld.java

创建jar文件

jar cvfe HelloWorld.jar HelloWorld HelloWorld.class

jar cvfe HelloWorld.jar HelloWorld *.class

运行jar文件

 java -jar HelloWorld.jar

或者

java -cp HelloWorld.jar HelloWorld

答案 4 :(得分:9)

如果您不想仅仅为了运行jar文件而创建清单,则可以在运行jar文件时直接从命令行引用main类。

java -jar Predit.jar -classpath your.package.name.Test

这将设置要在jar文件中运行的主类。

答案 5 :(得分:4)

爪哇

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

答案 6 :(得分:3)

如果您不想处理这些细节,还可以使用Eclipse或NetBeans中的导出jar助手。

答案 7 :(得分:3)

Eclipse Runnable JAR文件

创建Java项目 - RunnableJAR

  • 如果使用任何jar files,则将它们添加到项目构建路径。
  • 在创建Runnable Jar文件时选择具有main()的类。 enter image description here

主类

public class RunnableMainClass {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Name : "+args[0]);
        System.out.println(" ID  : "+args[1]);
    }
}

Run Jar文件使用java程序(cmd)通过提供参数并获取输出并在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中查找Short cuts

帮助►帮助目录►Java开发用户指南►参考►菜单和操作

答案 8 :(得分:2)

我有这个文件夹结构:

  

d:\ JavaProjects \ OlivePressApp \ COM \林达\ olivepress \ Main.class   d:\ JavaProjects \ OlivePressApp \ COM \林达\ olivepress \按\ OlivePress.class   d:\ JavaProjects \ OlivePressApp \ COM \林达\ olivepress \橄榄\ Kalamata.class   d:\ JavaProjects \ OlivePressApp \ COM \林达\ olivepress \橄榄\ Ligurian.class   d:\ JavaProjects \ OlivePressApp \ COM \林达\ olivepress \橄榄\ Olive.class

Main.class位于包com.lynda.olivepress

还有另外两个包:

  

com.lynda.olivepress.press

     

com.lynda.olivepress.olive

1)创建一个名为"Manifest.txt"的文件,其中包含两行,First with Main-Class和第二个空行。

Main-Class: com.lynda.olivepress.Main

D:\ JavaProjects \ OlivePressApp \ Manifest.txt

2)使用Manifest和Main-Class入口点创建JAR

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点之前包含上述其他两个包

答案 9 :(得分:-2)

要运行jar,首先你必须创建

  

可执行jar

然后

  

java -jar xyz.jar

命令将起作用