简体   繁体   中英

Java applet, add jar files to the manifest file

I am doing some thing obvious wrong. I have a simple applet which needs to upload files to server. I have written an ant script to build the jar file. However, the manifest.mf has class-path split into multiple lines.

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Class-Path: lib/commons-codec-1.3.jar            lib/commons-httpclien
 t-3.1.jar            lib/commons-logging-1.0.4.jar            lib/plu
 gin.jar
Created-By: 14.3-b01-101 (Apple Inc.)

My build.xml is :

<project name="ScreenShot" default="dist" basedir=".">
 <description>
        simple example build file
    </description>
 <!-- set global properties for this build -->
 <property name="src" location="src" />
 <property name="build" location="build" />
 <property name="dist" location="dist" />

 <target name="init">
  <!-- Create the time stamp -->
  <tstamp />
  <!-- Create the build directory structure used by compile -->
  <mkdir dir="${build}" />
 </target>

 <target name="compile" depends="init" description="compile the source ">


  <!-- Compile the java code from ${src} into ${build} -->
  <javac srcdir="${src}" destdir="${build}">
   <classpath>
    <pathelement path="${classpath}" />
    <pathelement path="lib/commons-codec-1.3.jar:lib/commons-httpclient-3.1.jar:lib/plugin.jar" />
   </classpath>

  </javac>
 </target>

 <target name="dist" depends="compile" description="generate the distribution">
  <!-- Create the distribution directory -->
  <mkdir dir="${dist}" />


  <copy todir="${build}/lib">
   <fileset dir="lib/" />
  </copy>

  <path id="libs.project">

   <!-- lib.home contains all jar files, in several subdirectories -->
   <fileset dir="lib">
    <include name="**/*.jar" />
   </fileset>
  </path>

  <manifestclasspath property="jar.classpath" maxParentLevels="1" jarfile="build/ScreenShot.jar">

   <classpath refid="libs.project" />
  </manifestclasspath>

  <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
  <jar jarfile="/Users/firemonk/red5/webapps/whiteboard/ScreenShot.jar" basedir="${build}">
   <manifest>
    <attribute name="Class-Path" value="${jar.classpath}" />
   </manifest>
  </jar>
 </target>



 <target name="clean" description="clean up">
  <!-- Delete the ${build} and ${dist} directory trees -->
  <delete dir="${build}" />
  <delete dir="${dist}" />
 </target>
</project>

Check the value of ${jar.classpath} . It seems its value itself is in multiple lines.

Does it not work? It's a bit odd that there are big spaces between each classpath entry but it looks valid.

The manifest specification states that lines must be no longer than 72 bytes and that longer lines should be split and continued on the next line with a leading space.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM