无法使用jar命令生成-java.io.IOException:行太长

无法使用jar命令生成-java.io.IOException:行太长,java,jar,executable-jar,runnable-jar,Java,Jar,Executable Jar,Runnable Jar,我有这样一个文件夹: foo/ Bar.java Bar.class Foo.java Foo.class manifest.mf .java文件都位于名为x的包中: package x; 我使用以下命令生成.class文件: javac foo/*.java 然后,我尝试使用以下内容打包为可运行jar格式: jar cmf foo.jar foo/manifest.mf foo/*.class 但我得到了这个错误: java.io.IOException: line too

我有这样一个文件夹:

foo/
 Bar.java
 Bar.class
 Foo.java
 Foo.class
 manifest.mf
.java文件都位于名为x的包中:

package x;
我使用以下命令生成.class文件:

javac foo/*.java
然后,我尝试使用以下内容打包为可运行jar格式:

jar cmf foo.jar foo/manifest.mf foo/*.class
但我得到了这个错误:

 java.io.IOException: line too long
        at java.base/java.util.jar.Attributes.read(Attributes.java:381)
        at java.base/java.util.jar.Manifest.read(Manifest.java:228)
        at java.base/java.util.jar.Manifest.<init>(Manifest.java:80)
        at java.base/java.util.jar.Manifest.<init>(Manifest.java:72)
        at jdk.jartool/sun.tools.jar.Main.run(Main.java:264)
        at jdk.jartool/sun.tools.jar.Main.main(Main.java:1669)

它使用
javac
进行编译,所以不确定发生了什么,或者为什么它不喜欢清单文件,有人知道吗?

正确的命令行将是

jar -c -m foo/manifest.mf -f foo.jar foo/*.class

将使用正确的命令行

jar -c -m foo/manifest.mf -f foo.jar foo/*.class
我相信对于“jarcmf”命令,第一个参数应该是清单的路径。 如文档中所述

你能试着用下一个命令来构建它吗

jar cmf foo/manifest.mf foo.jar foo/*.class
我相信对于“jarcmf”命令,第一个参数应该是清单的路径。 如文档中所述

你能试着用下一个命令来构建它吗

jar cmf foo/manifest.mf foo.jar foo/*.class

如果您有
包x
在java文件中,它们必须位于名为
x
的文件夹中在java文件中,它们必须位于名为
x
的文件夹中。这很有效,哇,这比预期的要难理解,感谢您的命令
jar
认为'foo.jar'是显式的。试着解析它,但失败了。这很有效,哇,这比预期的要困难,谢谢你的命令
jar
认为'foo.jar'是显式的。尝试解析它,但失败了。