使用命令提示符创建和创建自包含的Jar文件

时间:2014-12-04 04:01:50

标签: java manifest executable-jar command-line-tool

我的简单"你好,世界"程序具有以下文件结构:

根   TestClass.class   manifest.txt

这是TestClass.java中包含的源:

 package root;

    public class TestClass {

        public static void main(String[] args) {
            System.out.println("Executable jar worked!");
        }

    }

manifest.txt包含这个(它以换行符结尾):

Main-Class: TestClass

在cmd.exe(Windows 7,如果相关)中,我使用以下命令创建了一个.jar:

jar cvfm TestClass.jar manifest.txt TestClass.class

产生以下内容:

    added manifest
adding: TestClass.class(in = 439) (out= 303)(deflated 30%)

当我尝试执行此新jar文件时出现问题。我首先尝试简单地输入TestClass.jar,这绝对没有输出 - 相当于只需按下输入..

接下来,我尝试了这个:

java -jar TestClass.jar

给了我:

Error: Could not find or load main class TestClass

所以我的问题是:如何仅在命令提示符下生成和运行jar文件,以便在cmd中可以看到输出?

我希望它是自包含的,并且可执行的方式与chrome.exe相同。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您必须在清单文件

中指定完全限定的类名

在您的情况下,您必须指定包名称root,因此您的manifest.txt应包含如下

Main-Class: root.TestClass

注意:您必须将TestClass.class文件放在名为root的目录中(即,包名称应与目录名称匹配)

root/TestClass.class

使用此命令创建jar文件

jar cvfm Test.jar manifest.txt root/TestClass.class