This question already has an answer here:
Does the jar MANIFEST.MF max line length of 72 include the EOL bytes
(1个答案)
7个月前关闭。
以下是我的Ant构建文件的内容:
以下是我的build.properties。
以下是我的输出manifest.mf。
为什么在主类名称中生成空格?
它不影响使用ant任务或jar命令生成jar文件。
可执行jar也可以按预期工作。
(1个答案)
7个月前关闭。
以下是我的Ant构建文件的内容:
<?xml version="1.0"?>
<project name="testant"
basedir=".">
<property file="build.properties" />
<target name="manifest">
<tstamp />
<manifest mode="update"
file="manifest.mf">
<attribute name="Built-By"
value="${user.name}" />
<section name="common">
<attribute name="Specification-Title"
value="${ant.project.name}" />
<attribute name="Specification-Version"
value="1.0.0" />
<attribute name="Specification-Vendor"
value="" />
<attribute name="Implementation-Title"
value="" />
<attribute name="Implementation-Version"
value="${TODAY}" />
<attribute name="Implementation-Vendor"
value="" />
</section>
<attribute name="Main-Class"
value="${main.class}" />
</manifest>
</target>
</project>
以下是我的build.properties。
packages=com.javacodegeeks.patterns.strategypattern.*
main.class=com.javacodegeeks.patterns.strategypattern.TestStrategyPattern
以下是我的输出manifest.mf。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.10.6
Created-By: 10.0.2+13 (Oracle Corporation)
Built-By: root
Main-Class: com.javacodegeeks.patterns.strategypattern.TestStrategyPat
tern
Name: common
Specification-Title: testant
Specification-Version: 1.0.0
Specification-Vendor:
Implementation-Title:
Implementation-Version: July 7 2019
Implementation-Vendor:
为什么在主类名称中生成空格?
它不影响使用ant任务或jar命令生成jar文件。
可执行jar也可以按预期工作。
最佳答案
According to the JAR specification,
行长:
以UTF8编码的形式,任何行都不能超过72个字节(不是字符)。如果某个值会使初始行长于此长度,则应在额外的行上继续(每行以单个SPACE开头)。
某些工具似乎无视此要求,但Ant对此要求严格。您的行用70个字符加上大概\r\n
换行。
关于java - 为什么ant Manifest任务会拆分长的主类名称? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56919452/