Java-апплет, добавьте jar-файлы в файл манифеста

Я делаю что-то явно неправильное. У меня есть простой апплет, который должен загружать файлы на сервер. Я написал ant-скрипт для создания jar-файла. Однако в manifest.mf путь к классам разбит на несколько строк.

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.)

Мой build.xml это:

<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>

2 ответа

Проверьте значение ${jar.classpath}, Кажется, само его значение в нескольких строках.

Это не работает? Немного странно, что между каждой записью пути к классу есть большие пробелы, но это выглядит корректно.

В спецификации манифеста говорится, что строки должны быть не длиннее 72 байт, и что более длинные строки должны быть разделены и продолжены на следующей строке с пробелом.

Другие вопросы по тегам