0

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 タスクが実行されているときにコマンドラインを表示できますか?

4

1 に答える 1

0

問題を解決しました。求めていたものとは異なりますが、必要な情報が見つかりました。

ant コマンドラインを-v(verbose) に設定すると、より多くの情報が出力されます。出力に、設定していないクラスパスが表示されました。classpath属性を javah タスクに追加して設定する"."と、生成されたヘッダーに新しいメソッドが含まれるようになりました。

クラスパス ( javah タスクの詳細出力) で明示的に言及していないにもかかわらず、私が配置した jar ファイルで指定されたクラスを探していたに違いないと推測しています$JAVA_HOME/jre/lib/ext

于 2015-04-08T15:25:29.810 に答える