I agree that using ANT is no more cross-platform than using the JDK directly
to compile Java code.

Enclosed is a zip of 2 classes and a manifest that I wrote that encapsulate
calling the Javac compiler without java.exe. The main reason I wrote it was
so it found the JDK (1.2+) tools.jar containing the Javac compiler
automatically (so no need for a JAVA_HOME env. var. as ANT requires), and
also for doing message filtering. By looking at the Javac.java file
(ignoring the message filtering stuff), you should easily be able to call
the JDK compiler from your Java code.

Using the filtering of message, and passing the -verbose switch to the Java
compiler, I display which classes actually get recompiled during a Javac run
(including implicitly compiled classes found through the source path), and
also reformatted the Javac error messages so Visual Studio could jump to the
error on F4.

To run from the command line (or makefile), these 2 classes are packaged in
a tiny JAR that I run as below:

java -jar $(JAX_DIR)\lib\JAVAC.jar -verbose [any regular Javac options]

I hope you or anyelse finds this useful. --DD

 <<JavacShim.zip>>  -----Original Message-----
From:   Mark Derricutt [mailto:[EMAIL PROTECTED]] 
Sent:   Wednesday, February 13, 2002 11:42 PM
To:     Ant Users List; Erik Hatcher; Jay Riddell
Subject:        RE: Calling Ant from Java: An example please ?

Hmmmm, and the lack of cross platformability is where?  As long as you have 
tools.jar on your class path, load the load com.sun.tools.javac.Main and 
work with it.

I've never done it myself, but I'm just looking at the JEdit JCompiler 
plugin code which does it, doesn't seem to hard.  And I'm guessing the Ant 
<javac/> task code does something similiar as well...



--On Wednesday, February 13, 2002 17:07:15 -0800 Jay Riddell 
<[EMAIL PROTECTED]> wrote:

> Also, Mark asked why didn't I just call the compiler (instead of Ant)?
> Because I am trying to write cross-platform code and I was planning
> on using Ant as my "cross-platform compiler".



                                    -- \m/ --
  "...if I seem super human I have been misunderstood." (c) Dream Theater
         [EMAIL PROTECTED] - ICQ: 1934853 JID: [EMAIL PROTECTED]


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

Attachment: JavacShim.zip
Description: Binary data

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

Reply via email to