When I use -verbose to see what classpath ant is using for javac, I get
the following (reformatted for readability):

 [javac] Compilation args: javac
   -d C:\mike\cvs\netbeans\smsi\src\java\classes
   -classpath C:\mike\cvs\netbeans\smsi\src\java\classes
     ;C:\SMSIHome\third-party\xerces\v1.4.4\lib\xerces.jar
     ;C:\SMSIHome\third-party\xerces\v1.4.4\lib\xercesSamples.jar
     ;C:\jdk1.3.1\lib\tools.jar
     ;C:\programs\ant\jakarta-ant-1.4.1\lib\ant1.4.1-optional.jar
     ;C:\programs\ant\jakarta-ant-1.4.1\lib\crimson.jar
     ;C:\programs\ant\jakarta-ant-1.4.1\lib\jaxp.jar
     ;C:\programs\ant\jakarta-ant-1.4.1\lib\ant.jar
   -sourcepath [...]

The first one (...\java\classes) comes from my javac/destdir setting.

The next two (...\lib\xerces*) are from my javac/classpath[ref] setting.

The remaining ones apparently come from the script that starts ant up,
which appends some jars onto any system environment CLASSPATH settings
(unless they don't exist on the filesystem).

And upon further experimentation I have learned to turn it off with
build.sysclasspath="ignore".

However, it leads me to this question:

   Why does ant include all these extra JARs just because
   I want to use the CLASSPATH from my environment?

This isn't a major problem, of course.  One drawback I see is that the
classpath for my javac becomes longer than necessary (confusing, and a
problem under any O/S with a command line length limit).

Another drawback would be the potential for conflicting JARs (e.g.
jaxp.jar -- what if I'm using a different version of the javax.xml
package?).

I'm just curious about the rationale behind Ant appending its JARs (and
tools.jar!) to my CLASSPATH.


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

Reply via email to