У меня есть проект Java с классом, имеющим метод main в пакете com.nik.mypackage. Ссылка только на одну библиотеку это someLib-5.0.2.jar
Эта библиотека находится в папке lib в eclipse и добавлена в путь сборки.
Я создаю исполняемый jar-файл приложения, используя указанную ниже цель для скрипта ant:
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<target name="init">
<tstamp/>
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<javac srcdir="${src}" destdir="${build}">
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="lib/someLib-5.0.2.jar"/>
</classpath>
</javac>
</target>
<target name="dist" depends="compile" description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<copy todir="${build}/lib" verbose="true" file="lib/someLib-5.0.2.jar" />
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
<jar jarfile="${dist}/lib/myProject-${DSTAMP}.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="com.nik.mypackage.MainClass"/>
<attribute name="Class-Path" value="../lib/someLib.jar"/>
</manifest>
</jar>
</target>
Создается jar MyProject-20111126.jar. Однако, запустив следующую команду:
c:>java -jar MyProject-20111126.jar
выбрасывает NoClassDefFoundError для класса в someLib.jar
Что я делаю не так ??
Спасибо за чтение!