【问题标题】:Class-Path line too long类路径行太长
【发布时间】:2016-12-30 00:59:12
【问题描述】:

我用Java开发了application client,通过Glassfish运行正常..

但是在移动到Wildfly .. 我面临这个错误:

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0161: Failed to get manifest for deployment \"/content/Application.jar\" Caused by: java.io.IOException: line too long"}}

我预计该错误是因为Class-Path 文件中Manifest.mf 的行太长了。

Class-Path: ../lib/jaybird-2.1.6.jar ../lib/rtfparserkit-1.6.0.jar ../lib/jug-lgpl-2.0.0.jar ../lib/mysql-connector-java-5.1.37-bin.jar ../lib/trilead-ssh2-build213.jar ../lib/wsdl4j-1.6.2.jar ../lib/wsdl4j-qname-1.6.1.jar ../lib/xmlbeans-2.6.0.jar ../lib/poi-3.11-20141221.jar ../lib/poi-ooxml-3.11-20141221.jar ../lib/poi-ooxml-schemas-3.11-20141221.jar ../lib/jersey-apache-client-1.16.jar ../lib/jersey-bundle-1.16.jar ../lib/jersey-core-1.16.jar ../lib/jersey-client-1.16.jar ../lib/jackson-core-asl-1.9.13.jar ../lib/jackson-mapper-asl-1.9.2.jar ../lib/js-14.jar ../lib/drools-core-5.0.1.jar ../lib/activemq-all-5.10.0.jar ../lib/json-simple-1.1.1.jar ../lib/commons-io-2.4.jar ../lib/javassist.jar ../lib/scannotation-1.0.2.jar ../lib/j-text-utils-0.3.3.jar ../lib/commons-lang-2.6.jar ../lib/commons-net-3.3.jar ../lib/opencsv-2.4.jar ../lib/gson-2.2.4.jar ../lib/httpclient-4.3.5.jar ../lib/commons-vfs-20100924-pentaho.jar ../lib/log4j-1.2.17.jar ../lib/commons-logging-1.1.3.jar ../lib/spring-core-3.1.4.RELEASE.jar ../lib/commons-digester-2.1.jar ../lib/commons-beanutils-1.9.2.jar ../lib/ognl-2.7.3.jar ../lib/jxl-2.6.3.jar ../lib/metastore-5.0.1.jar ../lib/edtftpj-2.1.0.jar ../lib/kettle5-log4j-plugin-5.1.0.0-752.jar ../lib/kettle-db-4.4.0-stable.jar ../lib/janino-2.5.16.jar ../lib/commons-compiler-2.7.8.jar

有没有其他方法可以在不输入这个长行的情况下加载文件夹中的所有 jar?或者如何避免这个错误信息?

【问题讨论】:

  • 你换行了吗?
  • @Tom 这不是您提供的链接的副本。这是 Manifest.mf Class-Path 条目中的换行问题。
  • @SteveC 你是对的,因为 OP 没有问 “有没有其他方法可以在不输入这个长行的情况下将所有 jar 加载到文件夹中?” .. .

标签: java jakarta-ee classpath wildfly java-client


【解决方案1】:

FWIW:在寻找解决此问题的方法一段时间后,我终于找到了可行的方法。我在Windows 10 和java 1.8.0_241 和Linux Mint 19.1 和java 1.8.0_241 上都成功测试了它

请注意,"Class-path:" 行之后的每个类路径条目都缩进了 2 个空格,尽管这可能不是必需的。这是我的MANIFEST.MF 文件:

Manifest-Version: 1.0
Scala-Compiler-Version: 2.12.10
Main-Class: Main
Class-Path: /opt/uejlib2.12/vastblue_2.12.jar
  /opt/uejlib2.12/apps_2.12.jar
  /opt/uejlib2.12/scala-reflect.jar
  /opt/uejlib2.12/scala-library.jar
  /opt/uejlib2.12/better-files_2.12-3.8.0.jar
  /opt/uejlib2.12/scala-collection-compat_2.12-2.1.3.jar
  /opt/uejlib2.12/chronoscala_2.12-0.3.2.jar
  /opt/uejlib2.12/sfm-csv-8.2.1.jar
  /opt/uejlib2.12/sfm-map-8.2.1.jar
  /opt/uejlib2.12/lightning-csv-8.2.1.jar
  /opt/uejlib2.12/sfm-tuples-8.2.1.jar
  /opt/uejlib2.12/sfm-reflect-8.2.1.jar
  /opt/uejlib2.12/sfm-converter-8.2.1.jar
  /opt/uejlib2.12/sfm-util-8.2.1.jar

【讨论】:

    【解决方案2】:

    清单文件不得包含超过 72 个字节的行。

    您必须在 72 个字节后换行。

    Class-Path: ../lib/jaybird-2.1.6.jar ../lib/rtfparserkit-1.6.0.jar ../l
     ib/jug-lgpl-2.0.0.jar ../lib/mysql-connector-java-5.1.37-bin.jar ../li
     b/trilead-ssh2-build213.jar ../lib/wsdl4j-1.6.2.jar ../lib/wsdl4j-qnam
     e-1.6.1.jar ...
    

    在规范中查找行长:

    http://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#JAR_Manifest

    替代方案:不要在 Manifest 中使用类路径。而是从命令行参数开始:

    java -cp lib/* mainclass
    

    【讨论】:

    • 通常的策略是让你的构建工具为你生成这个条目。我知道 Maven 可以做到这一点。
    • 如何将java -cp 与appclient.sh 一起用于wildfly?
    • @Jason4Ever 抱歉,我不知道 appclient.sh for wildfly。这个文件是生成的吗?正如@Steve C 发布的那样,通常我们不会手动编写它,但它会生成。我的替代方案 `java -cp lib/*' 用于控制台(cmd、bash、终端等)。
    【解决方案3】:

    创建一个包含所有其他人的uber jar。

    【讨论】:

    • 请为pom.xml 文件编写一个示例? ..我试过但没有成功。
    • <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <configuration> <resources> <resource> <directory>/home/project/lib/</directory> </resource> </resources> </configuration> </plugin> </plugins> </build>
    猜你喜欢
    • 2011-11-02
    • 1970-01-01
    • 2015-08-25
    • 2016-09-05
    • 1970-01-01
    • 2013-11-06
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多