创建一个可执行jar

时间:2011-09-13 16:10:44

标签: java jar

我写了一个程序:

public class SystemShutdown {
    public static void main(String[] args) {
        try{
            for(int i=0;i<10;i++){
                Thread.sleep(1000);
            }
            Process p=Runtime.getRuntime().exec("shutdown -s -t 2700");
        }catch(Exception e){}
    }
}

我编译并将.class文件分开。

现在,我将清单文件写为:

Manifest-Version: 1.0
Main-Class: SystemShutdown

并以MANIFEST.MF

名称保存

我将两个(.class文件和MANIFEST.MF文件)放在同一目录中。

现在我要创建一个Executable Jar文件。为此,我做了:

jar cvfm MyJar.jar *.*

之后创建一个jar文件。 但是当我尝试执行它时会显示一条消息Java Exception occured

有人可以帮帮我吗? 我想在用户双击上执行这个程序。

除了上面的划痕,有人能告诉我创建可执行jar的确切步骤吗?

我正在使用Windows7 32bitjdk7

1 个答案:

答案 0 :(得分:9)

m命令行的jar选项表示您将提供清单文件作为以下参数(在本例中,在jar文件本身之后)。所以我怀疑你想要:

jar cvfm MyJar.jar MANIFEST.MF SystemShutdown.class

有关详细信息,请参阅jar tool documentation

编辑:我刚试过这个,它运行正常。代码:

// In Test.java
public class Test {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

// Manifest in MANIFEST.MF:
Manifest-Version: 1.0
Main-Class: Test

命令行和输出:

javac Test.java
jar cvfm test.jar MANIFEST.MF Test.class
java -jar test.jar
Hello

请注意,如果清单中Main-Class行末尾没有行终止符,则会导致错误,但指定的更好一些:

Failed to load Main-Class manifest attribute from test.jar