Ant任务:
<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任务时可以看到命令行吗?
答案 0 :(得分:0)
解决了这个问题。不是我要问的,但我找到了我需要的信息。
我将ant命令行设置为-v
(详细),打印出更多信息。在输出中,我看到了类路径,我没有设置。将classpath
属性添加到javah任务并将其设置为"."
,现在生成的标头包含我的新方法。
我猜想,尽管没有在类路径中明确提到它(在javah任务详细输出中),但它一定是在我放在$JAVA_HOME/jre/lib/ext
中的jar中寻找指定的类