我懷疑問題是你的類有一個包,你試圖從類文件而不是包根的目錄運行命令。
薩溫節的例子的作品,因爲他MyClass.java
不包含包,而我懷疑你呢。
例如,假設我們有以下文件在c:\src\com\example\MyClass.java
package com.example;
public class MyClass {
public native void myMethod();
}
轉到命令行執行以下命令:
c:\src\com\example>javac MyClass.java
c:\src\com\example>dir
Directory of C:\src\com\example
2015-02-23 03:17 PM <DIR> .
2015-02-23 03:17 PM <DIR> ..
2015-02-23 03:20 PM 219 MyClass.class
2015-02-23 03:17 PM 84 MyClass.java
c:\src\com\example>javah MyClass
Error: Could not find class file for 'MyClass'.
c:\src\com\example>cd c:\src
c:\src>javah com.example.MyClass
c:\src>dir
Directory of C:\src
2015-02-23 03:18 PM <DIR> .
2015-02-23 03:18 PM <DIR> ..
2015-02-23 03:16 PM <DIR> com
2015-02-23 03:18 PM 449 com_example_MyClass.h
成功!
你可以添加你正在運行的命令是什麼? – mjk
是的。它是d:\> javah -classpath d:\ hellojni –
請參閱@hendalst的答案如果有人在這裏尋找新的解決方案 –