Java &引用;无效的标题字段";(在清单中?)创建JAR时

Java &引用;无效的标题字段";(在清单中?)创建JAR时,java,jar,manifest,drjava,Java,Jar,Manifest,Drjava,我是一名经验丰富的开发人员,但没有多少Java经验。在我的工作中,我继承了一个小JNLP项目,该项目需要在沙箱之外操作(所有权限)。对于JDK1.7.0_51,我想我们现在也需要在清单中添加“权限:所有权限”” 到目前为止,我们一直在使用DrJava构建它,但是在DrJava菜单项目|从项目创建Jar文件中,自定义清单的复选框是“灰显”(不可用)。因此,我第一次尝试从命令行构建JAR 我已将以下内容放入名为“manifest.txt”的文件中: Permissions: all-permissi

我是一名经验丰富的开发人员,但没有多少Java经验。在我的工作中,我继承了一个小JNLP项目,该项目需要在沙箱之外操作(
所有权限
)。对于JDK1.7.0_51,我想我们现在也需要在清单中添加“
权限:所有权限”

到目前为止,我们一直在使用DrJava构建它,但是在DrJava菜单项目|从项目创建Jar文件中,自定义清单的复选框是“灰显”(不可用)。因此,我第一次尝试从命令行构建JAR

我已将以下内容放入名为“manifest.txt”的文件中:

Permissions: all-permissions
Main-class: main
(我相信,
Main类:Main
是必需的,而且到目前为止,DrJava一直在为我隐式地这样做。)而且,是的,我在最后一行后面有一个换行符

当我试着用命令行构建JAR时,我会按照

jar -cvfm foo.jar manifest.txt main.class UUID.class etc.class
。。。我得到以下例外情况:

java.io.IOException: invalid header field
    at java.util.jar.Attributes.read(Attributes.java:389)
    at java.util.jar.Manifest.read(Manifest.java:182)
    at java.util.jar.Manifest.<init>(Manifest.java:52)
    at sun.tools.jar.Main.run(Main.java:151)
    at sun.tools.jar.Main.main(Main.java:1149)
java.io.IOException:头字段无效
位于java.util.jar.Attributes.read(Attributes.java:389)
位于java.util.jar.Manifest.read(Manifest.java:182)
位于java.util.jar.Manifest。(Manifest.java:52)
位于sun.tools.jar.Main.run(Main.java:151)
位于sun.tools.jar.Main.Main(Main.java:1149)
我运行的是微软视窗7,这可能值不了多少钱。另外,我在网上看到了“
cvfm
”和“
-cvfm
”的例子。我两个都试过了,似乎都没关系

我想问题出在我的manifest.txt中,我已经读过了,但我不知道我可能做错了什么


我非常乐意使用DrJava解决方案或命令行解决方案。

明白了。事实证明,当您安装JDK1.7.0_51时(或者至少当我安装JDK1.7.0_51时),它不会更新系统路径。你必须手工编辑。所以我实际上是在运行JDK1.6.1_25 JAR而不是1.7.0_51,我猜清单中的“权限”对JDK1.6.1_25来说是未知的。这不是最清晰的错误信息,谷歌搜索也没有给出答案。我希望这会对其他人有所帮助:如果清单中有“权限”,那么“无效标题字段”可能意味着您的路径指向的JDK版本太旧。

通常会出现这种情况,因为您的f和m标志被切换了,但上面的情况似乎不是这样。是的。我怀疑这个清单文件确实有问题,但由于这是我写的第一个清单文件,我有点不知所措。