【发布时间】:2019-03-23 14:40:38
【问题描述】:
我正在尝试使用 JNI 和 JDK 9。我有一个类 NativeTest.java,如下所示:
public class NativeTest {
static {
System.loadLibrary("hello");
}
private native void sayHello();
public static void main(String[] args) {
new NativeTest().sayHello();
}
}
我编译类,然后使用javah NativeTest生成头文件。
发出javah 后,我收到以下警告:
Warning: The javah tool is planned to be removed in the next major
JDK release. The tool has been superseded by the '-h' option added
to javac in JDK 8. Users are recommended to migrate to using the
javac '-h' option; see the javac man page for more information.
我知道下一个主要的 JDK 版本还需要一段时间,但我想我现在应该开始习惯这个新选项了。
所以在尝试 javac -h NativeTest.java(以及其他变体,如 NativeTest、NativeTest.class 等)时,我不断收到此错误:
javac: no source files
我一直无法在网上找到任何帮助,可能是因为此功能相对较新,我在手册页中找不到有关此新 -h 选项的任何信息。
还有其他人尝试过吗?我错过了什么?
【问题讨论】:
-
啊,没关系,我找到了。您需要指定放置头文件的目录。
javac -h . NativeTest.java。我会留下这个问题,以防其他人遇到同样的疏忽。 -
您可以回答自己的问题并将其标记为已接受的答案。这将减少未回答问题的数量。
标签: java c java-native-interface header-files