我已经搜索谷歌和StackOverflow的解决方案,到目前为止没有发现。我试图使用Java 1.8的Windows命令行中的清单文件生成一个简单的可执行文件.jar包。相关文件是:使用jar.exe与清单文件的可执行文件 - “没有主清单属性”
Turtlephilia.java:
public class Turtlephilia {
public static void main(String[] args) {
System.out.println("i lurrrve turtles");
}
}
MANIFEST.MF:
Main-Class: Turtlephilia
do.bat:
javac Turtlephilia.java
jar cvmf manifest.mf Turtlephilia.jar Turtlephilia.class
java -jar Turtlephilia.jar
当我执行do.bat它编译并成功存档,但在运行jar文件时,它会生成此错误:
no main manifest attribute, in Turtlephilia.jar
注:我其实能够与此命令成功运行:
java -cp Turtlephilia.jar Turtlephilia
但我需要的是一个可执行的JAR。
我在做什么错?它能有多难!?
你碰巧用记事本创建了你的manifest.mf吗?我怀疑在开始时有一个不可见的[字节顺序标记](https://en.wikipedia.org/wiki/Byte_order_mark)(BOM)字符,这意味着该行在技术上并不以'Main-Class'开头。解决方案:在Main-Class上添加一个空白行。 – VGR
我没有在记事本中编辑,但添加一个空行后,我得到同样的问题。顺便提一下,我注意到的是,如果我将.jar拖入Netbeans并查看,那么在META-INF \ MANIFEST.ms下的包中,它具有Manifest-Version:1.0的默认清单,Created-By:...没有我的Main-Class系列。它只是完全忽略我的清单文件? –
哦,男人。你在正确的轨道上。 Main-Class是清单文件的最后一行,它需要一个回车符。 –