2024-10-02 06:00:00

如何运行JAR文件

我创建了一个JAR文件,如下所示:

jar cf Predit.jar *.*

我通过双击这个JAR文件来运行它(它没有工作)。所以我像这样在DOS提示符下运行它:

java -jar Predit.jar

它引发了“加载主类失败”异常。所以我提取了这个JAR文件:

jar -xf Predit.jar

然后运行类文件:

java Predit

它运行得很好。我不知道JAR文件为什么不能工作。请告诉我运行JAR文件的步骤


当前回答

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

其他回答

一个非常简单的方法来创建.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

or

jar cvfe HelloWorld.jar HelloWorld *.class

运行jar文件

 java -jar HelloWorld.jar

Or

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

Eclipse可运行JAR文件

创建一个Java项目RunnableJAR

如果使用了任何jar文件,则将它们添加到项目构建路径。 在创建Runnable Jar文件时,选择带有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中查找快捷方式:

►帮助►帮助内容►Java开发用户指南►参考资料►菜单和操作

您需要在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

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

然后运行:

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

输出:

Hello world

运行jar之前,检查Main-Class: classname在MANIFEST中是否可用。MF文件。清单。MF存在于罐子中。

java -jar filename.jar