Ausführen einer jar-Datei mit Ant
Ich versuche zum erstellen einer ausführbaren jar-Datei aus java-Klassen mit ant. Die java-Klassen verwenden von externen jars. Wenn ich ausführen build.xml zeigt seine Klasse nicht gefunden Ausnahme während der Ausführung des java-Programms. Seine Zusammenstellung in Ordnung.
Teil von Mein source-code:
<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>
InformationsquelleAutor geetha | 2010-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist, dass die manifest-classpath-Einträge sind nicht getrennt durch ein ";" Zeichen.
Die folgenden arbeiten besser finde ich:
Könnte ich schlage vor, mit der neuen ANT-Aufgabe manifestclasspath ?
Dieser mächtigen Methode bestimmen relative Pfade zu den jar-Speicherort, zum Beispiel, wenn die jar-Abhängigkeiten befinden sich in einem lib-Verzeichnis
InformationsquelleAutor Mark O'Connor