我試圖使用JNI的實驗和JDK 9時,我有一個類NativeTest.java
,看起來像這樣:javac的「無源文件」使用-h選項
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'。如果其他人遇到同樣的疏忽,我會留下問題。 –
您可以回答自己的問題並將其標記爲接受的答案。這將減少未解答問題的數量。 – cup