Hi,

An alternative to using an environment variable to find the JNI header
files, is to use the${java.home} property, i.e.

-I${java.home}\..\include

This isn't necessarily 100% portable across all JVMs, but it works with the
Sun and IBM JVMs.

Also, you might find the C/C++ compile task from the ant-contrib project
useful:

http://sf.net/projects/ant-contrib


Adam

> -----Original Message-----
> From: Sebastian Dietrich [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, 12 February 2002 6:29 PM
> To: Ant Users List
> Subject: Re: JNI
>
>
> Yes you're absolutely right. I had missed the "environment" attribute in
> the documentation...
>
> So for everyone interested:
> For adding the C++ compile/link step to a JNI project using ant unter
> Windows works like this:
>
> 1) add an environment property to the "init"-target (if you haven't done
> so already):
>     <target name="init">
>         ...
>         <property environment="env"/>
>         ...
>     </target>
>
> 2) add a "cppcompile" task after the "headergen" task (the one that
> generates the c++-headers with javah)
>     <target depends="init,headergen" description="Compile C++ dll."
> name="cppcompile">
>      <!-- you must set the PATH to ${basedir}\..\ressources otherwise
> the ressources can't be found -->
>      <apply executable="cl" dest="${basedir}/../ressources"
> parallel="false" failonerror="true">
>       <arg line="-I${env.JavaPath}\include
> -I${env.JavaPath}\include\win32"/>
>       <arg line="-LD"/>
>       <fileset dir="${basedir}">
>        <include name="**/*.c"/>
>        <include name="**/*.cpp"/>
>       </fileset>
>       <mapper type="glob" from="*.cpp" to="*.dll"/>
>      </apply>
>     </target>
>
> Thanks Vlad!
>
> [EMAIL PROTECTED] wrote:
>
> >I suggested ${env.JavaPath}  under the assumption that you imported the
> >entire environment using "env" as the prefix [which is common]. you may
> >prefer that to having to hardcode property values like below. See the
> >"environment" attribute on <property> task.
> >
> >Vlad.
> >
> >
> >
> >Please respond to "Ant Users List" <[EMAIL PROTECTED]>
> >To:     Ant Users List <[EMAIL PROTECTED]>
> >cc:
> >
> >Subject:        Re: JNI
> >
> >
> >Yes, you're right.
> >env.JavaPath didn't work, but using a property like
> ><property name="JavaHome" value="C:\Programme\Development\Java\J2SE"/>
> >workes just fine.
> >
> >Thanks,
> >Sebastian
> >
> >[EMAIL PROTECTED] wrote:
> >
> >>I doubt the %% variables below are expanded when cl is executed through
> >>Java's exec [those would be expanded by a shell].
> >>
> >>Perhaps try using ${env.JavaPath} etc instead ?
> >>
> >>Vlad.
> >>
> >>
> >>Please respond to "Ant Users List" <[EMAIL PROTECTED]>
> >>To:     [EMAIL PROTECTED]
> >>cc:
> >>
> >>Subject:        JNI
> >>
> >>
> >>Hi!
> >>
> >>I'm having trouble with a JNI project:
> >>
> >><target depends="init,headergen" description="Compile C++ dll."
> >>name="cppcompile">
> >><apply executable="cl" dest="${basedir}/../ressources" parallel="false"
> >>failonerror="true">
> >><arg line="-I%JavaPath%\include -I%JavaPath%\include\win32"/>
> >><arg line="-LD"/>
> >><fileset dir="${basedir}">
> >><include name="**/*.c"/>
> >><include name="**/*.cpp"/>
> >></fileset>
> >><mapper type="glob" from="*.cpp" to="*.dll"/>
> >></apply>
> >></target>
> >>
> >>won't work. I get:
> >>fatal error.. Cannot open include file: 'jni.h' (which is included from
> >>
> >my
> >
> >>.h file)
> >>
> >>Calling cl from the command line works fine with the same parameters
> >>
> >>Any ideas?
> >>
> >>
> >>
> >>--
> >>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]>
>>
>>
>>
>
>--
>Dipl.Ing. Sebastian Dietrich         [EMAIL PROTECTED]
>Software Design & Beratung                   http://www.e-movimento.com
>Rohrergasse 13/22/4                                   +43 699 1 9479128
>A - 1160 Wien                                           +43 (1) 9479128
>
>
>
>
>--
>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]>
>
>
>

--
Dipl.Ing. Sebastian Dietrich         [EMAIL PROTECTED]
Software Design & Beratung                   http://www.e-movimento.com
Rohrergasse 13/22/4                                   +43 699 1 9479128
A - 1160 Wien                                           +43 (1) 9479128




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

Reply via email to