gpt4 book ai didi

java - 尝试打开 jar 时发生意外错误

转载 作者:行者123 更新时间:2023-12-01 12:43:12 25 4
gpt4 key购买 nike

我有一个 Spring Batch 项目导出为可运行的 Jar 文件,它有 4 个主要方法,只有一个主要方法在工作,另一个主要需要引用 jar jai-codec-1.1.3.jar,但是当我放入 jar 时在类路径中,第一个 main 也无法工作,并给出错误消息“尝试打开 jar 时发生意外错误”

这是我的主要文件:

Manifest-Version: 1.0 Class-Path: JARS/spring-jdbc-3.1.1.RELEASE.jar JARS/spring-context-3.2.3.RELEASE.jar JARS/log4j-1.2.14.jar JARS/spring-tx-3.2.3.RELEASE.jar JARS/spring-core-3.2.3.RELEASE.jar JARS/spring-beans-3.2.3.RELEASE.jar JARS/commons-logging-1.1.1.jar JARS/spring-aop-3.2.3.RELEASE.jar JARS/aopalliance-1.0.jar JARS/spring-expression-3.2.3.RELEASE.jar JARS/commons-dbcp-1.4.jar JARS/commons-pool-1.5.4.jar JARS/ojdbc6-11.2.0.3.jar JARS/commons-lang3-3.0.jar JARS/itextpdf-5.5.1.jar JARS/jdom2-2.0.5.jar JARS/jai-codec-1.1.3.jar

我发现不是因为具体的jar文件,而是因为类路径的长度超出了限制,有没有办法在MAINFEST文件类路径中放置更多的jar?

我还定义了所有 @autowired 服务和组件类,但它仍然无法在 jar 中工作,只有当我在 spring-config 中将它们定义为 bean 时它才有效。

谁能帮我找出原因?

最佳答案

此错误可能表明(尽管以一种非常不清楚的方式)MANIFEST.MF 中存在错误。这可以通过文件中间的无效空行或太长的行来模拟。

MANIFEST.MF 非常不适合手动编辑:

  • 它必须有一个最后的空行(或者换句话说,最后一个行终止符),
  • 它的行最多必须为 72 个字节(不是字符,请参阅评论)长(我敢打赌这是您真正的问题,您只是修复了症状)
  • 并且续行必须以空格开头...
  • 最重要的是,类路径条目必须是 URL,而不是文件路径。

有关其规范的更多信息,请参见:https://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html

关于java - 尝试打开 jar 时发生意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24897264/

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