Too long line in manifest file while trying to create jar

后端 未结 5 865
北荒
北荒 2021-01-04 02:22

I am getting a too long line error while trying to build a jar. the long line in the manifest file is the Class-Path line as the application uses a lot of third-party libra

5条回答
  •  猫巷女王i
    2021-01-04 02:40

    The single character didn't work for me (Java 8, IntelliJ). I used two characters at the start and no characters at the end of the line (wasn't apparent from the above example) and two new lines at the end, e.g.

    Manifest-Version: 1.0
    Main-Class: com.mypackage.MyApp
    Implementation-Version: 2.0.0
    Class-Path:  newLibs/asjava.zip
      newLibs/activation.jar
      newLibs/axis-ant.jar
      newLibs/axis.jar
      newLibs/bcel-5.1.jar
      newLibs/commons-discovery-0.2.jar
      newLibs/commons-logging-1.0.4.jar
      newLibs/datanucleus-api-jdo-4.2.0-release.jar
      newLibs/datanucleus-api-jpa-4.1.4.jar
      newLibs/datanucleus-cache-4.0.4.jar
      newLibs/datanucleus-core-4.1.5.jar
      newLibs/datanucleus-geospatial-4.1.0-release.jar
      newLibs/datanucleus-guava-4.1.3.jar
      newLibs/datanucleus-java8-4.2.0-release.jar
      newLibs/datanucleus-jdo-query-4.2.0-release.jar
      newLibs/datanucleus-jodatime-4.1.1.jar
      newLibs/datanucleus-jpa-query-4.0.4.jar
      newLibs/datanucleus-rdbms-4.1.6.jar
      newLibs/dom4j-1.6.1.jar
      newLibs/ehcache-1.1.jar
      newLibs/ehcache-core-2.2.0.jar
      newLibs/geronimo-jta_1.1_spec-1.1.jar
      newLibs/guava-15.0.jar
      newLibs/h2-1.3.168.jar
      newLibs/ibmjsse.jar
      newLibs/javax.jdo-3.2.0-m3.jar
      newLibs/javax.persistence-2.1.1.jar
      newLibs/jaxrpc.jar
      newLibs/jdo-api-3.1-rc1.jar
      newLibs/jdom.jar
      newLibs/joda-time-1.6.jar
      newLibs/jtds-1.2.jar
      newLibs/log4j-1.2.14.jar
      newLibs/mail.jar
      newLibs/saaj.jar
      newLibs/servlet-api.jar
      newLibs/wsdl4j-1.5.1.jar
      newLibs/xercesImpl.jar
      newLibs/xml-apis.jar
    

    I also avoided placing multiple jars on one line as that didn't appear to work (even with lines less than 72 bytes).

    What led me to arrive at this solution was (1) I kept getting various class not found exceptions, of course and (2) When I examined the generated manifest file in the jar file, the spacing between the jars was missing - I assume that it was silently failing because there was no reported error apart from the class not found exceptions. My working, generated manifest file looks like this:

    Manifest-Version: 1.0
    Implementation-Version: 2.0.0
    Class-Path:  newLibs/asjava.zip newLibs/activation.jar newLibs/axis-an
     t.jar newLibs/axis.jar newLibs/bcel-5.1.jar newLibs/commons-discovery
     -0.2.jar newLibs/commons-logging-1.0.4.jar newLibs/datanucleus-api-jd
     o-4.2.0-release.jar newLibs/datanucleus-api-jpa-4.1.4.jar newLibs/dat
     anucleus-cache-4.0.4.jar newLibs/datanucleus-core-4.1.5.jar newLibs/d
     atanucleus-geospatial-4.1.0-release.jar newLibs/datanucleus-guava-4.1
     .3.jar newLibs/datanucleus-java8-4.2.0-release.jar newLibs/datanucleu
     s-jdo-query-4.2.0-release.jar newLibs/datanucleus-jodatime-4.1.1.jar 
     newLibs/datanucleus-jpa-query-4.0.4.jar newLibs/datanucleus-rdbms-4.1
     .6.jar newLibs/dom4j-1.6.1.jar newLibs/ehcache-1.1.jar newLibs/ehcach
     e-core-2.2.0.jar newLibs/geronimo-jta_1.1_spec-1.1.jar newLibs/guava-
     15.0.jar newLibs/h2-1.3.168.jar newLibs/ibmjsse.jar newLibs/javax.jdo
     -3.2.0-m3.jar newLibs/javax.persistence-2.1.1.jar newLibs/jaxrpc.jar 
     newLibs/jdo-api-3.1-rc1.jar newLibs/jdom.jar newLibs/joda-time-1.6.ja
     r newLibs/jtds-1.2.jar newLibs/junit-3.8.1.jar newLibs/log4j-1.2.14.j
     ar newLibs/mail.jar newLibs/saaj.jar newLibs/servlet-api.jar newLibs/
     wsdl4j-1.5.1.jar newLibs/xercesImpl.jar newLibs/xml-apis.jar
    Main-Class: com.mypackage.MyApp
    

提交回复
热议问题