2

まさにタイトルが言うこと。

特定のメソッドを宣言するクラスnativeがありますが、内部クラスもいくつかあります。ユーティリティは、メソッド宣言がない場合でもjavah、内部クラス用に個別のヘッダーを生成することを主張します。これを強制的に停止する方法はありますか (注釈、秘密のコマンドライン スイッチなど)。nativejavah

4

1 に答える 1

4

私はそれを行う方法を知りません。(私はOracle JDKを使用しています。)

煩わしさは理解していますが、問題は不要なファイルとそれらの不要な再生成に限定されています (外部クラスの変更により、内部クラスの役に立たないヘッダー ファイルが書き換えられます)。

この問題を解決するには、空のヘッダー ファイルをすべて削除します。Ant は Eclipse の汎用プロジェクト ビルダー ステップとして使用できるため、Ant を使用します。

<?xml version="1.0" encoding="UTF-8"?>
<project name="javah">
    <mkdir dir="javah" />

    <javah classpath="bin" destdir="javah">
        <!-- list classes here -->
        <class name="com.example.Outer" />
        <class name="com.example.OuterWithNatives" />
    </javah>

    <delete>
        <fileset dir="javah">
            <not>
                <contains text="JNIEXPORT" />
            </not>
        </fileset>
    </delete>

</project>
于 2013-07-11T14:30:44.800 に答える