Hi Jay,

Well, instead of programmatically generate Java source code, maybe you
should programmatically generate Jython code. The latter can be
automatically compiled to bytecode by the Jython compiler/interpreter, and a
Jython class can extend a Java class (and vice versa if you can believe
me!!!). Most likely, if as you say you want to execute the compiled code you
just generated, the code/class you generate must extend or implement
something (base class / interface) that you know how to deal with.

Another options would be to construct the class you want dynamically,
directly in bytecode. This can be achieved using the newly accepted Jakarta
project BCEL (Byte Code Engineering Library).

I hope this helps. --DD

 -----Original Message-----
From:   Jay Riddell [mailto:[EMAIL PROTECTED]] 
Sent:   Wednesday, February 13, 2002 1:58 PM
To:     Ant Users List; Kevin Toomey
Subject:        Re: Calling Ant from Java: An example please ?

Yes, I am TRYING to do that.
But I am failing miserably.
There are NO EXAMPLES on how to do this; there is only Javadoc
on the API itself (with very little extra explanatory text).

OK, maybe I am not being specific enough here.

Here is the java code that I have written that attempts
to compile a "Hello, world" java file:
http://home.attbi.com/~theriddells/CompileIt.java

And here are the results that I get:
http://home.attbi.com/~theriddells/results.txt

(Sorry for the links, I felt they were too long to be
directly quoted here.)

Thoughts ?  Help ?

Thanks

On 2/13/02 11:15 AM, "Kevin Toomey" <[EMAIL PROTECTED]> wrote:

> It sounds like you want to take a look at the org.apache.tools.ant
> package in the API. Using the Project, Target, and Task classes, you
> could implement Diane's example via a Java program.
> 
> --- Jay Riddell <[EMAIL PROTECTED]> wrote:
>> Thanks for the quick response  . . . but no ;-)
>> 
>> I want to accomplish this in Java by calling the Ant API.
>> 
>> I need to dynamically:
>>   - generate source code
>>   - compile what was generated
>>   - classload it
>>   - execute it
>> 
>> And I need to do all this as part of a larger application.
>> 
>> How's THAT for fun ?
>> 
>> On 2/13/02 10:47 AM, "Diane Holt" <[EMAIL PROTECTED]> wrote:
>> 
>>> --- Jay Riddell <[EMAIL PROTECTED]> wrote:
>>>> I have an application where I need to dynamically generate Java
>> source
>>>> code, compile it, load it and then execute that code.
>>> [snip]
>>>> However, I'm sure that I'm not doing anything really
>> difficult...I'm
>>>> just doing it wrong ;-).  A "compile Hello World"-type example
>> would
>>>> save me BUNCHES of work and would be MUCH appreciated.
>>> 
>>> If I understand right what you want to do (but given the past two
>> days,
>>> that's anybody's guess :), here's an example:
>>> 
>>> <target name="runHello" depends="gensrc,compile">
>>>   <java classname="HelloWorld" >
>>>     <classpath>
>>>       <pathelement location="."/>
>>>     </classpath>
>>>   </java>
>>> </target>
>>> 
>>> <target name="compile">
>>>   <javac srcdir="." destdir="." includes="HelloWorld.java"/>
>>> </target>
>>> 
>>> <target name="gensrc">
>>>   <echo file="HelloWorld.java">public class HelloWorld
>>> {
>>> public static void main (String [] args)
>>> {
>>>     System.out.println("Hello, world") ;
>>> }
>>> }
>>>   </echo>
>>> </target>
>>> 
>>> Diane
>>> 
>>> =====
>>> ([EMAIL PROTECTED])
>>> 
>>> 
>>> 
>>> __________________________________________________
>>> Do You Yahoo!?
>>> Send FREE Valentine eCards with Yahoo! Greetings!
>>> http://greetings.yahoo.com
>>> 
>>> --
>>> To unsubscribe, e-mail:
>> <mailto:[EMAIL PROTECTED]>
>>> For additional commands, e-mail:
>> <mailto:[EMAIL PROTECTED]>
>>> 
>> 
>> 
>> --
>> To unsubscribe, e-mail:
>> <mailto:[EMAIL PROTECTED]>
>> For additional commands, e-mail:
>> <mailto:[EMAIL PROTECTED]>
>> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Send FREE Valentine eCards with Yahoo! Greetings!
> http://greetings.yahoo.com
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 


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

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

Reply via email to