我有一个 MANIFEST.MF,如下所示
Manifest-Version: 1.0
Created-By: Maven JAR Plugin 3.3.0
Build-Jdk-Spec: 17
Implementation-Title: cengine
Implementation-Version: 0.0.1-SNAPSHOT
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.spotnana.obt.commissionengine.CommissionEngineApplicati
on
Spring-Boot-Version: 3.0.13
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
我想从上面的 MANIFEST.MF 文件中读取
Start-Class
。我尝试了here提到的解决方案。
清单规格如下所示
以 UTF8 编码形式,任何行的长度不得超过 72 个字节(不是字符)。如果某个值会使初始行比此长,则应在额外的行上继续(每行以单个空格开头)。
尝试中
perl -0777 -wpe 's/\n //g' MANIFEST.MF | awk '/Start-Class/{print $2}'
它看起来像
onm.spotnana.obt.commissionengine.CommissionEngineApplicati
这似乎是 Windows 行结尾 (
\r\n
) 搞乱了模式匹配。
perl -0777 -wpe 's/\r?\n //g' MANIFEST.MF | awk '/Start-Class/{print $2}'
添加了
\r?
来满足 Linux 和 Windows 两种情况。