0

蚂蚁任务:

<target name="regenerateJNIHeader" description="Re-generates the JNI header">
    <echo message="Re-generating JNI header" />
    <attrib readonly="false">
        <fileset dir="." includes="**/MyAPI*.h"/>
    </attrib>
    <javah class="com.MyAPI" force="yes" verbose="yes"/>
</target>

问题是,我对 MyAPI 进行了更改(添加了一个方法),但是,尽管清除了头文件和编译的类文件,但当我运行此任务时,并没有添加我的新方法。如果我运行javah com.MyAPI,它可以正常工作。

可以在执行 ant 任务时看到命令行吗?

4

1 回答 1

0

解决了这个问题。不是我要问的,但我找到了我需要的信息。

我将 ant 命令行设置为-v(详细),它打印出更多信息。在输出中,我看到了我没有设置的类路径。将属性添加classpath到 javah 任务并将其设置为".",现在生成的标头包含我的新方法。

我推测,尽管没有在类路径中明确提到它(在 javah 任务详细输出中),但它一定是在我放置在 .jar 中的 jar 中寻找指定的类$JAVA_HOME/jre/lib/ext

于 2015-04-08T15:25:29.810 回答