【发布时间】:2018-11-06 12:46:02
【问题描述】:
我尝试创建一个简单的可执行 jar 文件。我的步骤是:
Test.java
public class Test{
public static void main(String[] args){
System.out.println("Hello World");
}
}
终端:
javac Test.java
产生Test.class
检查:
java Test
Hello World
创建 manifest.mf 文件:
Main-Class: Test
然后
jar -cfmv Test.jar manifest.mf Test.class
added manifest
adding: Test.class(in = 413) (out= 287)(deflated 30%)
终于
java -jar Test.jar
no main manifest attribute, in Test.jar
我按照 Katanas 的所有步骤回答这里:How to create a .jar file using the terminal
更新:
按照 ScaryWombat 的建议,我解压缩了 jar 文件:
ls -alR
.:
total 16
drwxrwxr-x 3 infiniteZero infiniteZero 4096 May 28 02:25 .
drwxrwxr-x 4 infiniteZero infiniteZero 4096 May 28 02:26 ..
drwxrwxr-x 2 infiniteZero infiniteZero 4096 May 28 02:19 META-INF
-rw-rw-r-- 1 infiniteZero infiniteZero 413 May 28 01:50 Test.class
./META-INF:
total 12
drwxrwxr-x 2 infiniteZero infiniteZero 4096 May 28 02:19 .
drwxrwxr-x 3 infiniteZero infiniteZero 4096 May 28 02:25 ..
-rw-rw-r-- 1 infiniteZero infiniteZero 94 May 28 02:19 MANIFEST.MF
cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Main-Class: Test.class
Created-By: 9-internal (Oracle Corporation)
【问题讨论】:
-
谢谢,我添加了一个新行,但这无济于事,即我收到相同的错误消息。
-
jar 文件基本上是一个 zip 文件,所以重命名它并在您最喜欢的 zip 客户端中打开它。内容是否符合预期?
-
@ScaryWombat 我用信息更新了帖子。我认为它看起来应该是。此外,我尝试切换扩展名,但仍然抛出相同的错误。
-
经过进一步检查,似乎在清单条目中添加了一个 .class