我想创建 c 库并在 Linux 操作系统上的 java 代码中使用它。我正在尝试理解和实现自然图书馆的概念。我正在关注本教程 http://diglib.stanford.edu:8091/~testbed/doc/JavaUsage/JNI/tutorial.txt
这有助于我理解一些概念。但是,当我尝试自己做时会出错。我搜索了我遇到的错误,但没有一个解决方案有帮助。
我写的自然库的主类代码和类如下:
package natLib;
import natLib.getKeyPressed;
public class main {
public static void main(String[] args) {
getKeyPressed natlab=new getKeyPressed();
char c=natlab.keyboardPressedKey();
}
}
package natLib;
public class getKeyPressed {
static {
System.loadLibrary("natlab");
}
public native char keyboardPressedKey();
}
当我写“javac main.java”时,我会收到类似的错误
“main.java:6:错误:找不到符号 getKeyPressed natlab=new getKeyPressed();”
当我跳过 main 并且只使用本机方法对类执行 javac prcess 时,尝试获取头文件 javah -jni getKeyPressed.class
尽管有一个文件为 getKeyPressed.class,但我收到如下错误:
"Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: getKeyPressed.class"
我在没有 .class 扩展的情况下尝试它说
"Error: Could not find class file for 'getKeyPressed'."
它说即使我通过复制 getKeyPressed.class 来制作 getKeyPressed 类文件。
看来我犯了一个重大错误,有什么建议可以解决这个问题吗?