我写了一个程序:
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 32bit
和 jdk7
最佳答案
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/