生成JNI头时使javah忽略内部类?

时间:2013-07-11 04:21:26

标签: java java-native-interface javah

标题是什么。

我有一个声明某些native方法的类,但也有一些内部类。 javah实用程序坚持为内部类生成单独的标头,即使它们没有任何native方法声明。有没有办法强制javah停止这样做(注释,秘密命令行开关,什么)?

1 个答案:

答案 0 :(得分:4)

我不知道如何做到这一点。 (我使用的是Oracle JDK。)

我理解烦恼,但问题仅限于不必要的文件及其不必要的重新生成(外部类更改导致重写内部类的无用头文件)。

要解决此问题,我只删除所有空头文件。我使用Ant,因为它可以作为Eclipse中的通用项目构建器步骤使用。

<?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>