Я хочу указать путь к другому каталогу (который содержит jars, в настоящее время d:/ext_jars
).
После запуска build.xml. Я хочу, чтобы этот путь занял эту пригодную для работы банку.
В настоящее время jar выдает ошибки из-за отсутствия classpath (который ранее был в c:/project/lib/*.jars
, преобразован в D:/ext_jars
).
Пожалуйста, помогите мне, как я могу установить этот внешний каталог в classpath файла build.xml?
Мой код в: build.xml
<?xml version="1.0"?>
<project name="MyProject" default="deploy" basedir="." >
<property file="manifest.mf" />
<property name="dir.src" value="src" />
<property name="dir.build" value="bin" />
<property name="dir.dist" value="dist/MyProject" />
<property name="dir.lib" value="lib" />
<!-- Creates the output directories -->
<target name="prepare">
<mkdir dir="${dir.build}" />
<mkdir dir="${dir.dist}" />
<mkdir dir="${dir.dist}/${dir.csvdata}" />
<mkdir dir="${dir.dist}/${dir.MH}" />
</target>
<target name="clean" description="Remove all generated files.">
<delete dir="${dir.build}" />
<delete dir="${dir.dist}" />
</target>
<path id="build.classpath">
<fileset dir="${dir.lib}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</path>
<path id="build.classpath.ref">
<fileset dir="D:/ext_jars">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</path>
<target name="compile" depends="prepare" description="Compile all source code.">
<!--<javac srcdir="${dir.src}" destdir="${dir.build}" debug="true">-->
<javac destdir="${dir.build}" debug="true">
<classpath refid="build.classpath" />
<classpath refid="build.classpath.ref" />
<src path="src"/>
</javac>
<copy todir="${dir.build}">
<fileset dir="${dir.src}">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<pathconvert property="classpath" refid="build.classpath">
</pathconvert>
<pathconvert property="classpath" refid="build.classpath.ref">
</pathconvert>
<target name="jar" depends="compile" description="Generates ${project.name}.Jar in the 'dist' directory.">
<jar jarfile="${dir.dist}/${ant.project.name}.jar">
<fileset dir="${dir.build}" includes="**/*.*" />
<manifest>
<attribute name="Class-Path" value="${Class-Path}" />
<attribute name="Main-Class" value="${Main-Class}" />
</manifest>
</jar>
</target>
<target name="deploy" depends="clean,jar">
<copy todir="${dir.dist}/${dir.lib}">
<fileset dir="${dir.lib}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</copy>
</target>
Использование этого кода. После запуска проекта он работает хорошо, но после запуска jar, созданного этим кодом, он не запускается, и выдает ошибку следующим образом:
Exception in thread "main" java.lang.NoClassDefFoundError: dowlibpkg/DowLib
at mypkg.MainApp.main(MainApp.java:109)
Caused by: java.lang.ClassNotFoundException: dowlibpkg.DowLib
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
ТАК созданный Jar не работает ../ Я хочу, чтобы он был запущен, может кто-нибудь, пожалуйста, помогите мне
=============================================== ===============
manifest.mf
Манифест-Версия: 1.0
Путь к классу: lib / org.springframework.asm-3.0.1.RELEASE \ lib / org.springframework.beans-3.0.1.RELEASE \ lib / org.springframework.context-3.0.1.RELEASE \ lib / org. springframework.core-3.0.1.RELEASE \ lib / org.springframework.expression-3.0.1.RELEASE \ lib / org.springframework.oxm-3.0.1.RELEASE \ lib / org.springframework.web-3.0.1. РЕЛИЗ
Основной класс: myProject.MainApp