我正在使用ANT buildcript,如下所示:
<project basedir="..">
<property name="src" location="src"/>
<property name="classes" location="classes" />
<property name="jnifiles" location="jnifiles" />
<target name="init">
<mkdir dir="${classes}" />
<mkdir dir="${jnifiles}" />
</target>
<target name="compile"
description="compile the source " >
<javac srcdir="${src}" destdir="${classes}" includeantruntime="false" />
</target>
<target name="generate-jni">
<javah destdir="${jnifiles}" >
<class name="com.example.ExecJNI" />
</javah>
</target>
<target name="clean"
description="clean up" >
<delete dir="${classes}"/>
<delete dir="${jnifiles}"/>
</target>
它通过clean,init和编译就好了,但在generate-jni我得到以下错误:
generate-jni:
[javah] Exception in thread "main" java.lang.NullPointerException
[javah] at com.sun.tools.javah.JavahTask.run(JavahTask.java:509)
[javah] at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
[javah] at com.sun.tools.javah.Main.main(Main.java:46)
任何人都知道我做错了什么?
答案 0 :(得分:1)
您是否检查了已安装JRE的默认版本?
我也有同样的问题,我在Eclipse首选项中检查了已安装的JRE。 虽然我确实安装了jdk1.7,但默认版本是jre7。 将默认版本更改为jdk1.7后,问题就解决了。
希望这些信息对您有所帮助。