gpt4 book ai didi

java - JNI目录结构c和java

转载 作者:行者123 更新时间:2023-11-30 16:14:57 25 4
gpt4 key购买 nike

我已经创建了 3 个 JNI 类,由于我是编程新手,所以我只是将它们全部放在同一个文件中,但现在我必须以专业的方式为它们设置目录。

这包括源代码的src和类的bin,但我不知道将.h放在哪里>.so 文件以及如何编译所有内容以使其正常工作。

我尝试研究类路径和其他内容,但我似乎陷入困境,无法让我的代码正常运行。我也在尝试理解和学习这方面的软件包,但我也陷入困境。

#spaces are just for easier reading atm

cd /home/pi/git/GPIO_I2C
mkdir bin
javac -d bin /home/pi/git/GPIO_I2C/src/com/company/gpioi2c/gpio/GPIOMethods.java -h ./bin

cd bin
gcc -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -c "com_comapny_gpioi2c_gpio_GPIOMethods.h"

cd /home/pi/git/GPIO_I2C/src/c

gcc -o libmyGPIOMethods.so -shared -fPIC -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux GPIOMethods.c -lc

sudo cp libmyGPIOMethods.so /usr/lib
cd /home/pi/git/GPIO_I2C/
java -cp /home/pi/git/GPIO_I2C/bin/com/company/gpioi2c/gpio GPIOMethods

这是我迄今为止尝试编译的方法之一,但我收到无法加载主类不满意的链接错误取决于我所做的更改?

最佳答案

如果您已经成功生成了 .so 文件,您需要做的就是告诉 JVM 在哪里可以找到它。您可以通过将 -Djava.library.path=/directory/path/goes/here 添加到 JVM 命令行来实现此目的。

(下一步,请确保在尝试调用任何 native 方法之前调用 System.loadLibrary("myGPIOMethods"))。

关于java - JNI目录结构c和java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57328302/

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