java - 创建可执行 jar

标签 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 文件并将其分开。

现在,我将编写一个 list 文件:

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

最佳答案

jar 命令行的 m 选项表示您将提供 list 文件作为以下参数(在本例中,在 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

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

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

关于java - 创建可执行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7405051/

相关文章:

java - 在另一台主机上部署jar时没有音频/图像

java - Gradle 更改 JAR 中的资源文件目标位置

java - 以原子方式移动和重命名 Path 实例

java - 在循环中创建多个 FileWriter 对象

java - java问题中的泛型数组

java - 压缩存在于一个 FTP 位置的文件并直接复制到另一个 FTP 位置

jar - 如何从 .jar 文件中的源构建 javadoc?

java - Build 后 LookAndFeel 发生了变化

java - 如何在项目中使用txt文件创建可运行的jar文件

Java添加删除集合的方法