Click here to Skip to main content
15,896,726 members
Articles / Programming Languages / Java / Java SE

C# method calls within a Java program

Rate me:
Please Sign up or sign in to vote.
3.57/5 (25 votes)
16 Feb 2006CPOL4 min read 286.7K   7.7K   60  
Using C# from Java through JNI just got a little easier to understand.
<?xml version="1.0" encoding="UTF-8"?>
<!--
*** GENERATED FROM project.xml - DO NOT EDIT  ***
***         EDIT ../build.xml INSTEAD         ***

For the purpose of easier reading the script
is divided into following sections:

  - initialization
  - compilation
  - jar
  - execution
  - debugging
  - javadoc
  - junit compilation
  - junit execution
  - junit debugging
  - applet
  - cleanup

-->
<project name="HelloWorld-impl" default="build" basedir="..">
    <target name="default" depends="test,jar,javadoc" description="Build and test whole project."/>
    <!-- 
    ======================
    INITIALIZATION SECTION 
    ======================
    -->
    <target name="-pre-init">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-init-private" depends="-pre-init">
        <property file="nbproject/private/private.properties"/>
    </target>
    <target name="-init-user" depends="-pre-init,-init-private">
        <property file="${user.properties.file}"/>
        <!-- The two properties below are usually overridden -->
        <!-- by the active platform. Just a fallback. -->
        <property value="1.4" name="default.javac.source"/>
        <property value="1.4" name="default.javac.target"/>
    </target>
    <target name="-init-project" depends="-pre-init,-init-private,-init-user">
        <property file="nbproject/project.properties"/>
    </target>
    <target name="-do-init" depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property">
        <available property="manifest.available" file="${manifest.file}"/>
        <condition property="manifest.available+main.class">
            <and>
                <isset property="manifest.available"/>
                <isset property="main.class"/>
                <not>
                    <equals trim="true" arg2="" arg1="${main.class}"/>
                </not>
            </and>
        </condition>
        <available file="${test.src.dir}" property="have.tests"/>
        <condition property="netbeans.home+have.tests">
            <and>
                <isset property="netbeans.home"/>
                <isset property="have.tests"/>
            </and>
        </condition>
        <condition property="no.javadoc.preview">
            <isfalse value="${javadoc.preview}"/>
        </condition>
        <property value="" name="run.jvmargs"/>
        <property value="" name="javac.compilerargs"/>
        <property value="${basedir}" name="work.dir"/>
        <condition property="no.deps">
            <and>
                <istrue value="${no.dependencies}"/>
            </and>
        </condition>
    </target>
    <target name="-post-init">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-init-check" depends="-pre-init,-init-private,-init-user,-init-project,-do-init">
        <fail unless="src.dir">Must set src.dir</fail>
        <fail unless="test.src.dir">Must set test.src.dir</fail>
        <fail unless="build.dir">Must set build.dir</fail>
        <fail unless="dist.dir">Must set dist.dir</fail>
        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
        <fail unless="dist.jar">Must set dist.jar</fail>
    </target>
    <target name="-init-macrodef-property">
        <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="name"/>
            <attribute name="value"/>
            <sequential>
                <property value="${@{value}}" name="@{name}"/>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-javac">
        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="srcdir" default="${src.dir}"/>
            <attribute name="destdir" default="${build.classes.dir}"/>
            <attribute name="classpath" default="${javac.classpath}"/>
            <attribute name="debug" default="${javac.debug}"/>
            <element name="customize" optional="true"/>
            <sequential>
                <javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                    <compilerarg line="${javac.compilerargs}"/>
                    <customize/>
                </javac>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-junit">
        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="includes" default="**/*Test.java"/>
            <sequential>
                <junit showoutput="true" fork="true" dir="${basedir}" failureproperty="tests.failed" errorproperty="tests.failed">
                    <batchtest todir="${build.test.results.dir}">
                        <fileset includes="@{includes}" dir="${test.src.dir}"/>
                    </batchtest>
                    <classpath>
                        <path path="${run.test.classpath}"/>
                    </classpath>
                    <syspropertyset>
                        <propertyref prefix="test-sys-prop."/>
                        <mapper to="*" from="test-sys-prop.*" type="glob"/>
                    </syspropertyset>
                    <formatter usefile="false" type="brief"/>
                </junit>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-nbjpda">
        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="name" default="${main.class}"/>
            <attribute name="classpath" default="${debug.classpath}"/>
            <attribute name="stopclassname" default=""/>
            <sequential>
                <nbjpdastart stopclassname="@{stopclassname}" name="@{name}" addressproperty="jpda.address" transport="dt_socket">
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                </nbjpdastart>
            </sequential>
        </macrodef>
        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="dir" default="${build.classes.dir}"/>
            <sequential>
                <nbjpdareload>
                    <fileset dir="@{dir}" includes="${fix.includes}*.class"/>
                </nbjpdareload>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-debug">
        <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="classname" default="${main.class}"/>
            <attribute name="classpath" default="${debug.classpath}"/>
            <attribute name="args" default="${application.args}"/>
            <sequential>
                <java classname="@{classname}" fork="true" dir="${work.dir}">
                    <jvmarg value="-Xdebug"/>
                    <jvmarg value="-Xnoagent"/>
                    <jvmarg value="-Djava.compiler=none"/>
                    <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
                    <jvmarg line="${run.jvmargs}"/>
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                    <syspropertyset>
                        <propertyref prefix="run-sys-prop."/>
                        <mapper to="*" from="run-sys-prop.*" type="glob"/>
                    </syspropertyset>
                    <arg line="@{args}"/>
                </java>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-macrodef-java">
        <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
            <attribute name="classname" default="${main.class}"/>
            <element name="customize" optional="true"/>
            <sequential>
                <java classname="@{classname}" fork="true" dir="${work.dir}">
                    <jvmarg line="${run.jvmargs}"/>
                    <classpath>
                        <path path="${run.classpath}"/>
                    </classpath>
                    <syspropertyset>
                        <propertyref prefix="run-sys-prop."/>
                        <mapper to="*" from="run-sys-prop.*" type="glob"/>
                    </syspropertyset>
                    <customize/>
                </java>
            </sequential>
        </macrodef>
    </target>
    <target name="-init-presetdef-jar">
        <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
            <jar compress="${jar.compress}" jarfile="${dist.jar}">
                <fileset xmlns="http://www.netbeans.org/ns/j2se-project/1" dir="${build.classes.dir}"/>
            </jar>
        </presetdef>
    </target>
    <target name="init" depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar"/>
    <!--
    ===================
    COMPILATION SECTION
    ===================
    -->
    <target name="deps-jar" depends="init" unless="no.deps"/>
    <target name="-pre-pre-compile" depends="init,deps-jar">
        <mkdir dir="${build.classes.dir}"/>
    </target>
    <target name="-pre-compile">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile" depends="init,deps-jar,-pre-pre-compile,-pre-compile">
        <j2seproject:javac xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1"/>
        <copy todir="${build.classes.dir}">
            <fileset excludes="${build.classes.excludes}" dir="${src.dir}"/>
        </copy>
    </target>
    <target name="-post-compile">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile" depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project."/>
    <target name="-pre-compile-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile-single" depends="init,deps-jar,-pre-pre-compile">
        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
        <j2seproject:javac xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1">
            <customize>
                <patternset includes="${javac.includes}"/>
            </customize>
        </j2seproject:javac>
    </target>
    <target name="-post-compile-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile-single" depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single"/>
    <!--
    ====================
    JAR BUILDING SECTION
    ====================
    -->
    <target name="-pre-pre-jar" depends="init">
        <dirname file="${dist.jar}" property="dist.jar.dir"/>
        <mkdir dir="${dist.jar.dir}"/>
    </target>
    <target name="-pre-jar">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-jar-without-manifest" depends="init,compile,-pre-pre-jar,-pre-jar" unless="manifest.available">
        <j2seproject:jar xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1"/>
    </target>
    <target name="-do-jar-with-manifest" depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" unless="manifest.available+main.class">
        <j2seproject:jar xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" manifest="${manifest.file}"/>
    </target>
    <target name="-do-jar-with-mainclass" depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class">
        <j2seproject:jar xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" manifest="${manifest.file}">
            <manifest xmlns="http://www.netbeans.org/ns/j2se-project/1">
                <attribute value="${main.class}" name="Main-Class"/>
            </manifest>
        </j2seproject:jar>
    </target>
    <target name="-post-jar">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="jar" depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-post-jar" description="Build JAR."/>
    <!--
    =================
    EXECUTION SECTION
    =================
    -->
    <target name="run" depends="init,compile" description="Run a main class.">
        <j2seproject:java xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1">
            <customize>
                <arg line="${application.args}"/>
            </customize>
        </j2seproject:java>
    </target>
    <target name="run-single" depends="init,compile-single">
        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
        <j2seproject:java xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classname="${run.class}"/>
    </target>
    <!--
    =================
    DEBUGGING SECTION
    =================
    -->
    <target name="-debug-start-debugger" if="netbeans.home" depends="init">
        <j2seproject:nbjpdastart xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" name="${debug.class}"/>
    </target>
    <target name="-debug-start-debuggee" depends="init,compile">
        <j2seproject:debug xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1"/>
    </target>
    <target name="debug" if="netbeans.home" depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE."/>
    <target name="-debug-start-debugger-stepinto" if="netbeans.home" depends="init">
        <j2seproject:nbjpdastart xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" stopclassname="${main.class}"/>
    </target>
    <target name="debug-stepinto" if="netbeans.home" depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee"/>
    <target name="-debug-start-debuggee-single" if="netbeans.home" depends="init,compile-single">
        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
        <j2seproject:debug xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classname="${debug.class}"/>
    </target>
    <target name="debug-single" if="netbeans.home" depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single"/>
    <target name="-pre-debug-fix" depends="init">
        <fail unless="fix.includes">Must set fix.includes</fail>
        <property value="${fix.includes}.java" name="javac.includes"/>
    </target>
    <target name="-do-debug-fix" if="netbeans.home" depends="init,-pre-debug-fix,compile-single">
        <j2seproject:nbjpdareload xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1"/>
    </target>
    <target name="debug-fix" if="netbeans.home" depends="init,-pre-debug-fix,-do-debug-fix"/>
    <!--
    ===============
    JAVADOC SECTION
    ===============
    -->
    <target name="-javadoc-build" depends="init">
        <mkdir dir="${dist.javadoc.dir}"/>
        <javadoc destdir="${dist.javadoc.dir}" source="${javac.source}" notree="${javadoc.notree}" use="${javadoc.use}" nonavbar="${javadoc.nonavbar}" noindex="${javadoc.noindex}" splitindex="${javadoc.splitindex}" author="${javadoc.author}" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}" private="${javadoc.private}" failonerror="true">
            <classpath>
                <path path="${javac.classpath}"/>
            </classpath>
            <sourcepath>
                <pathelement location="${src.dir}"/>
            </sourcepath>
            <fileset dir="${src.dir}"/>
        </javadoc>
    </target>
    <target name="-javadoc-browse" if="netbeans.home" unless="no.javadoc.preview" depends="init,-javadoc-build">
        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
    </target>
    <target name="javadoc" depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc."/>
    <!--
    =========================
    JUNIT COMPILATION SECTION
    =========================
    -->
    <target name="-pre-pre-compile-test" if="have.tests" depends="init,compile">
        <mkdir dir="${build.test.classes.dir}"/>
    </target>
    <target name="-pre-compile-test">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile-test" if="have.tests" depends="init,compile,-pre-pre-compile-test,-pre-compile-test">
        <j2seproject:javac xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
        <copy todir="${build.test.classes.dir}">
            <fileset dir="${test.src.dir}">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>
    <target name="-post-compile-test">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile-test" depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test"/>
    <target name="-pre-compile-test-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="-do-compile-test-single" if="have.tests" depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single">
        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
        <j2seproject:javac xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}">
            <customize>
                <patternset includes="${javac.includes}"/>
            </customize>
        </j2seproject:javac>
    </target>
    <target name="-post-compile-test-single">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="compile-test-single" depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single"/>
    <!--
    =======================
    JUNIT EXECUTION SECTION
    =======================
    -->
    <target name="-pre-test-run" if="have.tests" depends="init">
        <mkdir dir="${build.test.results.dir}"/>
    </target>
    <target name="-do-test-run" if="have.tests" depends="init,compile-test,-pre-test-run">
        <j2seproject:junit xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1"/>
    </target>
    <target name="-post-test-run" if="have.tests" depends="init,compile-test,-pre-test-run,-do-test-run">
        <fail if="tests.failed">Some tests failed; see details above.</fail>
    </target>
    <target name="test-report" if="have.tests" depends="init"/>
    <target name="-test-browse" if="netbeans.home+have.tests" depends="init"/>
    <target name="test" depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests."/>
    <target name="-pre-test-run-single" if="have.tests" depends="init">
        <mkdir dir="${build.test.results.dir}"/>
    </target>
    <target name="-do-test-run-single" if="have.tests" depends="init,compile-test-single,-pre-test-run-single">
        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
        <j2seproject:junit xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" includes="${test.includes}"/>
    </target>
    <target name="-post-test-run-single" if="have.tests" depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single">
        <fail if="tests.failed">Some tests failed; see details above.</fail>
    </target>
    <target name="test-single" depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test."/>
    <!--
    =======================
    JUNIT DEBUGGING SECTION
    =======================
    -->
    <target name="-debug-start-debuggee-test" if="have.tests" depends="init,compile-test">
        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
        <j2seproject:debug xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" args="${test.class}" classpath="${debug.test.classpath}" classname="junit.textui.TestRunner"/>
    </target>
    <target name="-debug-start-debugger-test" if="netbeans.home+have.tests" depends="init,compile-test">
        <j2seproject:nbjpdastart xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classpath="${debug.test.classpath}" name="${test.class}"/>
    </target>
    <target name="debug-test" depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test"/>
    <target name="-do-debug-fix-test" if="netbeans.home" depends="init,-pre-debug-fix,compile-test-single">
        <j2seproject:nbjpdareload xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" dir="${build.test.classes.dir}"/>
    </target>
    <target name="debug-fix-test" if="netbeans.home" depends="init,-pre-debug-fix,-do-debug-fix-test"/>
    <!--
    =========================
    APPLET EXECUTION SECTION
    =========================
    -->
    <target name="run-applet" depends="init,compile-single">
        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
        <j2seproject:java xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classname="sun.applet.AppletViewer">
            <customize>
                <arg value="${applet.url}"/>
            </customize>
        </j2seproject:java>
    </target>
    <!--
    =========================
    APPLET DEBUGGING  SECTION
    =========================
    -->
    <target name="-debug-start-debuggee-applet" if="netbeans.home" depends="init,compile-single">
        <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
        <j2seproject:debug xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" args="&quot;${applet.url}&quot;" classname="sun.applet.AppletViewer"/>
    </target>
    <target name="debug-applet" if="netbeans.home" depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet"/>
    <!--
    ===============
    CLEANUP SECTION
    ===============
    -->
    <target name="deps-clean" depends="init" unless="no.deps"/>
    <target name="-do-clean" depends="init">
        <delete dir="${build.dir}"/>
        <delete dir="${dist.dir}"/>
    </target>
    <target name="-post-clean">
        <!-- Empty placeholder for easier customization. -->
        <!-- You can override this target in the ../build.xml file. -->
    </target>
    <target name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>
</project>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Canada Canada
I'm current a 3rd year Computer Engineering Technology : Software Developer student at St. Lawrence College in Kingston, Ontario.

I usually get myself into some of the more cool projects like neural nets or cross platform applications.

Comments and Discussions