I created my first Ant script and it's working pretty well. It compiles all my java sources, creates a .jar file and runs the program without even any warning.
But when i try to run my .jar from command line i get NoClassDefFoundError exceptions.
So, how to translate this Ant snippet to work from command line?
<property name="main.class" value="de.bfs.radon.omsimulation.OMMainFrame"/>
<path id="classpath">
  <fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<target name="run" depends="jar">
  <java fork="true" classname="${main.class}">
    <classpath>
      <path refid="classpath"/>
      <path location="${bin.dir}/omsimulation-${version}.jar"/>
    </classpath>
  </java>
</target>
This is the command line:
# java -classpath lib/ -jar bin/omsimulation-0.4.45-beta3.jar
Throws:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/toedter/calendar/JDateChooser
    at de.bfs.radon.omsimulation.OMMainFrame.(OMMainFrame.java:133)
    at de.bfs.radon.omsimulation.OMMainFrame$1.run(OMMainFrame.java:106)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
Why does my .jar file not work with the defined classpath? Further down the Ant script:
<target name="jar" depends="manifest">
  <mkdir dir="${bin.dir}" />
  <jar jarfile="${bin.dir}/omsimulation-${version}.jar" manifest="${src.dir}/omsimulation.manifest" compress="no" basedir="${build.dir}" includes="de/**" />
</target>
<target name="manifest" depends="compile">
  <manifestclasspath property="manifest.cp" jarfile="${bin.dir}/omsimulation-${version}.jar">
    <classpath refid="classpath" />
  </manifestclasspath>
  <manifest file="${src.dir}/omsimulation.manifest">
    <attribute name="Built-By" value="${author}"/>
    <attribute name="Main-Class" value="${main.class}"/>
  </manifest>
</target>
Again, running the Ant script works fine. I even tried adding the said libraries to my .jar but that only blows up the file size, the problem still persists.
<jar jarfile="${bin.dir}/omsimulation-${version}.jar" manifest="${src.dir}/omsimulation.manifest" compress="no" basedir="${build.dir}"> <!-- includes="de/**" /-->
  <fileset dir="${lib.dir}">
    <include name="**/*.jar" />
  </fileset>
</jar>
Any ideas on this?
Thanks a lot, donc_oe
SOLVED: Thanks to perception, the unix command line i was looking for is:
# java -cp lib/*:bin/myjarfile.jar my.package.MyMainClass
And for Windows (note the ; semicolon):
# javaw -cp lib/*;bin/myjarfile.jar my.package.MyMainClass