2016-08-23 97 views
1

我在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"}}

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

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文件,而无需输入此长行?或如何避免此错误讯息?

+1

[设定在Java类路径多瓶(http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath) – Tom

+0

做了可能重复:除了用命令行参数启动你正确包装线? –

+0

@Tom这不是你提供的链接的重复。这是Manifest.mf'Class-Path'条目中的换行问题。 –

回答

3

清单文件不能包含超过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

备选:不要使用类路径清单。

java -cp lib/* mainclass 
+0

通常的策略是让您的构建工具为您生成此条目。我知道Maven可以做到这一点。 –

+0

如何使用'java -cp'作为'wildfly'的'appclient.sh'? – Jason4Ever

+0

@ Jason4Ever对不起,我不知道_appclient.sh wildfly_。这个文件是否生成?正如@Steve C所发布的,通常我们不会手动写这个,但它会生成。我的替代'java -cp lib/*'是用于控制台(cmd,bash,终端等)。 –

1

制作一个uber jar包含所有其他人。

+0

请为'pom.xml'编写一个样本档案? ..我尝试过但没有成功。 – Jason4Ever

+0

' \t \t \t \t \t \t \t \t \t org.apache.maven.plugins \t \t \t \t 行家遮阳帘插件 \t \t \t \t 2。3 \t \t \t \t <结构> /家庭/项目/ LIB/ \t \t \t \t \t \t' – Jason4Ever