Выполнить файл jar с помощью Ant

Я пытаюсь создать исполняемый файл jar из классов java, используя ant. Классы Java используют внешние банки. Когда я выполняю build.xml, его класс показывает исключение, не найденное при запуске java-программы. Его компиляция в порядке.

Часть моего исходного кода:

<path id="project-libpath">
   <fileset dir="${lib.dir}">
      <include name="*.jar"/>
   </fileset>
</path>

<path id="project-classpath">
   <fileset dir="C:/xmldecode/lib">
      <include name="*.jar"/>
   </fileset>
</path>

 <target name="compile" depends="prepare">
    <javac srcdir="${src.dir}" destdir="${classes.dir}">
       <classpath refid="project-classpath"/>
    </javac>
 </target>

 <target name="jar" depends="compile">
    <copy todir="${classes.dir}">
       <fileset dir="C:/xmldecode/lib"/>
    </copy>

    <pathconvert property="mf.classpath" pathsep=";">
       <path refid="project-classpath" />
       <flattenmapper />
    </pathconvert>

    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
       <manifest>
          <attribute name="Main-Class" value="${main-class}"/>
          <attribute name="Class-Path" value="${mf.classpath}"/>
       </manifest>
    </jar>
 </target>


 <target name="run" depends="jar">
    <java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
    </java>

ant
person geetha    schedule 15.06.2010    source источник


Ответы (1)


arrow_upward
1
arrow_downward

Ваша проблема в том, что записи пути к классам манифеста не разделены знаком ";" персонаж. Я думаю, что следующее будет работать лучше:

<pathconvert property="mf.classpath" pathsep=" ">
    <path refid="project-classpath" />
    <flattenmapper />
</pathconvert>

Могу ли я предложить использовать новую задачу ANT manifestclasspath?

<manifestclasspath property="mf.classpath" jarfile="${jar.dir}/${ant.project.name}.jar">
    <classpath refid="project-classpath" />
</manifestclasspath>

Этот мощный метод будет определять пути относительно местоположения jar, например, если зависимости jar расположены в каталоге lib.

person Mark O'Connor    schedule 15.06.2010