gpt4 book ai didi

java - 当我使用命令 java -jni HelloWorld 时遇到麻烦

转载 作者:行者123 更新时间:2023-12-02 12:09:57 24 4
gpt4 key购买 nike

我正在学习如何使用jni(java native 接口(interface)),并且我按照博客中提供的步骤进行操作。我创建了一个名为“HelloWorld.java”的java文件,内容如下:

public class HelloWorld { 
public native void displayHelloWorld();
static {
System.loadLibrary("HelloWorldImpl");
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
HelloWorld helloWorld = new HelloWorld();
helloWorld.displayHelloWorld();
}
}

然后我执行这个命令:

javac HelloWorld

没有发生错误,但是当我执行此命令时:

javah -jni HelloWorld

然后我收到一个错误:

can't find class "HelloWorld"

我确定,这个目录下有已经编译好的HelloWorld.class文件。

开发人员:

jdk8
windows 10 64bits

我google了很久,问了我的同学,谁用同样的步骤成功了,但是无法处理这个问题,是不是我的笔记本出了问题?有人可以帮助我吗?非常感谢。

最佳答案

首先,确保使用包。它不是强制性的,但它简化了事情。

然后,编译完 java 代码后,请确保使用:

javah -jni -cp . HelloWorld

您也可以在某个位置创建头文件

javah -jni -d c -cp . HelloWorld
# -d c -> header files will be created inside directory called "c"

我还建议将类编译到某个子目录中:

javac -d target HelloWorld.java
# compiled classes will be inside "target" dir
# then, you can call javah this way
javah -jni -d c -cp target HelloWorld

请查看此处的完整示例,其中包含 super 简单的代码:

http://jnicookbook.owsiak.org/recipe-No-001/

享受 JNI 带来的乐趣!

关于java - 当我使用命令 java -jni HelloWorld 时遇到麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46618107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com