From http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html#options

-jar
Execute a program encapsulated in a JAR file. The first argument is
the name of a JAR file instead of a startup class name. In order for
this option to work, the manifest of the JAR file must contain a line
of the form Main-Class: classname. Here, classname identifies the
class having the public static void main(String[] args) method that
serves as your application's starting point. See the Jar tool
reference page and the Jar trail of the Java Tutorial for information
about working with Jar files and Jar-file manifests.
When you use this option, the JAR file is the source of all user
classes, and other user class path settings are ignored

The last sentence is what really matters, i.e. the <classpath> is
ignored when you use the 'jar' attribute, because that's the way SUN's
java executable works. --DD

On 7/4/06, Douglas Dunn <[EMAIL PROTECTED]> wrote:
Like many programmers, I pride myself in no wasting other programmer's time by 
always making a best effort to find my own answers. BUT, I have just spend 
almost the entire Forth of July trying to find out why this VERY BASIC ant 
project fails. The problem is that ant cannot find the j2ee.jar extension 
delivered in the Java EE 5 (i.e. not part of the core API). I've tried 
absolutely everything after hours and hours of exhaustive Internet research. 
Many, many times it appeared I found the answer, but it would not work.

So, here I am. Your help would be greatly appreciated.

HERE IS THE ANT CODE. NOTHING FOLLOWS; PLEASE EMAIL ME IF YOU WOULD LIKE TO 
HELP AND HAVE SOME IDEA. I CANNOT LIST EVERYTHING I HAVE TRIED, BUT BELIEVE ME 
I HAVE TRIED EVERYTHING I COULD FIND WHILE RESEARCHING THE PROBLEM ON THE 
INTERNET. I EVEN WOULD BE GREATFUL FOR SOME IDEA HOW TO PRINT THE CLASSPATH THE 
java TASK IS USING. I FOUND MANY WAYS TO DO THIS, BUT NONE, NONE OF THEM WORKED 
FOR ME. THIS HAS BEEN A REALLY UGLY DAY, AND ON TOP OF IT I READ SOME REALLY 
DISTURBING REPLIES FROM THE DEVELOPER'S AT ANT, REPLIES TO OTHER PEOPLE HAVING 
SIMILAR PROBLEMS. MANY THANKS IN ADVANCE.

<?xml version="1.0" encoding="UTF-8"?>
<project name="TestHttpServlet"  basedir="." default="run">

   <!-- property names for directories -->
   <property name="src.dir"     value="src"/>
   <property name="build.dir"   value="build"/>
   <property name="classes.dir" value="${build.dir}/classes"/>
   <property name="jar.dir"     value="${build.dir}/jar"/>

   <!-- property name for the Main-Class in a JAR manifest -->
   <property name="main-class"  value="TestHttpServlet"/>

   <!-- AS Home -->
   <property name="appserver-home"  value="c:SunAppServer"/>



   <!-- CLEAN -->
   <target name="clean" description="Delete all generated files">
        <delete dir="${build.dir}" failonerror="false" />
   </target>


   <!-- COMPILE -->
   <target name="compile" depends="clean"
    description="Compiles all .java files in the src directory"
   >
       <mkdir dir="${classes.dir}"/>
       <javac srcdir="${src.dir}" destdir="${classes.dir}" compiler="javac1.5"/>
   </target>


   <!-- COPY RESOURCES -->
   <target name="copy" depends="compile"
    description="Copies resource files in the src directory to the classes directory 
in preparation for archiving"
   >
       <copy todir="${classes.dir}">
       <fileset dir="${src.dir}" excludes="**/*.java"/>
       </copy>
   </target>


   <!-- ARCHIVE -->
   <target name="jar" depends="copy"
           description="archive the .class files and other resources found in the 
src directory, and create the manifest file"
   >
           <mkdir dir="${jar.dir}"/>
           <jar destfile="${jar.dir}/${ant.project.name}.jar" 
basedir="build/classes">
           <manifest>
               <attribute name="Main-Class" value="${main-class}"/>
           </manifest>
       </jar>
   </target>


   <!-- TEST -->
   <!-- NOTE: fork="true" MUST BE used when executing a .jar file -->
   <target name="run" depends="jar"
      description="Executes main(String[] args) to test build"
   >
      <java jar="${jar.dir}/${ant.project.name}.jar" fork="true">
         <classpath>
            <pathelement location="${appserver.home}/lib/j2ee.jar"/>
         </classpath>
      </java>
  </target>

</project>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to