首页 文章

如何运行JAR文件

提问于
浏览
169

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

jar cf Predit.jar *.*

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

java -jar Predit.jar

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

jar -xf Predit.jar

我运行了类文件:

java Predit

它运作良好 . 我不知道为什么JAR文件不起作用 . 请告诉我运行JAR文件的步骤

11 回答

  • 182

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

    执行jar文件 . 无需过多担心清单文件 . 让它简单而优雅 .

    Java sample Hello World Program

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

    Compiling the class file

    javac HelloWorld.java
    

    Creating the jar file

    jar cvfe HelloWorld.jar HelloWorld HelloWorld.class
    

    要么

    jar cvfe HelloWorld.jar HelloWorld *.class
    

    Running the jar file

    java -jar HelloWorld.jar
    

    要么

    java -cp HelloWorld.jar HelloWorld
    
  • 3

    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
    
  • 2

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

  • 15

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

    请注意,文本文件必须以新行或回车结束 . 如果最后一行没有以新行或回车结束,则不会正确解析 .

    然后运行:

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

    输出:

    Hello world
    
  • 13
    java -classpath Predit.jar your.package.name.MainClass
    
  • 3

    在运行jar检查 Main-Class: classnameMANIFEST.MF 文件中是否可用 . MANIFEST.MF存在于jar中 .

    java -jar filename.jar
    
  • 9

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

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

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

  • -2

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

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

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

  • 50

    Eclipse Runnable JAR File

    创建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开发用户指南►参考►菜单和操作

  • 7

    我有这个文件夹结构:

    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)创建一个名为 "Manifest.txt" 的文件,其中包含两行,第一行为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点之前包括上述其他两个包

  • 4

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

    可执行jar

    然后

    java -jar xyz.jar

    命令会起作用

相关问题