gpt4 book ai didi

java - 没有主要 list 属性(但我在 jar 中有 list 文件)

转载 作者:行者123 更新时间:2023-11-30 11:15:48 25 4
gpt4 key购买 nike

注意-我已经解决了这个问题,为了其他人的利益,我会发布答案。请注意,我确实查看了此错误的其他答案,但它们并未涵盖此处发生的情况。

C:\blah>type a.java
class a { public static void main(String[] args) { } }

编译它

C:\blah>javac a.java

blah 中的文件列表

C:\blah>dir /s/b
C:\blah\a.class
C:\blah\a.java
C:\blah\manifest

我用记事本写的 list 文件

C:\blah>type manifest
Main-Class: a
C:\blah>

创建 jar

C:\blah>jar cvfm asdf.jar manifest -C . .
added manifest
adding: a.class(in = 247) (out= 187)(deflated 24%)
adding: a.java(in = 56) (out= 55)(deflated 1%)
adding: manifest(in = 13) (out= 15)(deflated -15%)

运行 jar

C:\blah>java -jar asdf.jar
no main manifest attribute, in asdf.jar

我看了这个问题的其他答案,他们建议添加一个 list 文件

但是 list 文件在jar里

C:\blah>jar -tf asdf.jar
META-INF/
META-INF/MANIFEST.MF
a.class
a.java
manifest

C:\blah>

最佳答案

当我用记事本写 list 文件时,它的末尾没有换行。这就是导致错误的原因。

Windows 使用 CRLF 作为行分隔符,而 Linux 使用 LF 作为行终止符。所以,当我在记事本中写下这一行时,它的末尾没有 CRLF。

但是 java -jar jarfile.jar 要求 Manifest 在末尾有一个新行(在本例中为 CRLF)。我的行尾什么都没有。

C:\blah>type manifest
Main-Class: a
C:\blah>

创建jar文件

C:\blah>jar cvfm asdf.jar manifest -C . .
added manifest
adding: a.class(in = 247) (out= 187)(deflated 24%)
adding: a.java(in = 56) (out= 55)(deflated 1%)
adding: manifest(in = 13) (out= 15)(deflated -15%)

执行jar

C:\blah>java -jar asdf.jar
no main manifest attribute, in asdf.jar

如我们所见,它失败了,因为 list 文件末尾没有换行

将新行添加到 list 文件的末尾。这也可以在记事本中完成

C:\blah>echo.>>manifest

list 文件的内容

C:\blah>type manifest
Main-Class: a
C:\blah>

运行jar文件

C:\blah>java -jar asdf.jar
no main manifest attribute, in asdf.jar

失败,因为仍然是旧的 jar 文件 ;-)

创建 jar 文件..因为向 list 文件添加了新行

C:\blah>jar cvfm asdf.jar manifest -C . .
added manifest
adding: a.class(in = 247) (out= 187)(deflated 24%)
adding: a.java(in = 56) (out= 55)(deflated 1%)
adding: manifest(in = 15) (out= 17)(deflated -13%)

它运行良好没有错误

C:\blah>java -jar asdf.jar

C:\blah>

关于java - 没有主要 list 属性(但我在 jar 中有 list 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com