在web开发中JNative 报 Native library not loaded 异常的解决

在开发一个web的时候,一个类用了JNative,JNativeCpp.dll文件发到了windows/system32下面,
junit 也测试通过了,实际调用的时候报了个
java.lang.IllegalStateException: JNative library not loaded, sorry !
at org.xvolks.jnative.JNative. <init>(JNative.java:337)
at org.xvolks.jnative.JNative. <init>(JNative.java:269)
....
的错误,

后来把JNativeCpp.dll拷到tomcat的bin下面就解决了。

不过,不知道了解里面的机制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux上使用jnative.jar的方法与在Windows上略有不同,主要是需要注意以下几个问题: 1. 首先需要安装Java开发工具包(JDK)和C/C++开发工具包,可以使用以下命令在Ubuntu安装: ``` sudo apt-get install default-jdk build-essential ``` 2. 然后需要下载并解压jnative.jar文件。可以在GitHub上找到最新版本的jnative.jar文件。 3. 在Java代码使用jnative.jar加载.so文件和调用本地方法的方法与在Windows略有不同。在Linux,需要在Java命令行指定.so文件的路径和jnative.jar文件的路径,例如: ``` java -Djnative.library.path=/path/to/libs -classpath /path/to/jnative.jar:/path/to/your/class YourClass ``` 其,/path/to/libs是包含.so文件的目录的路径,/path/to/jnative.jar是jnative.jar文件的路径,YourClass是包含本地方法调用的Java类。 4. 在C/C++代码实现本地方法的方法与在Windows相同。需要注意的是,在Linux需要使用C/C++编译器生成共享库文件(.so文件),例如: ``` gcc -shared -o libmylibrary.so MyLibrary.c ``` 其,MyLibrary.c是包含本地方法实现的C/C++源代码文件。 如果仍然无法加载本地库文件,请检查相关的路径和库文件是否正确。你可以使用ldd命令查看.so文件依赖的库文件是否可用,例如: ``` ldd /path/to/libs/mylibrary.so ``` 这将列出.so文件依赖的所有库文件。如果其有任何库文件无法找到,请检查系统是否安装了所有必需的库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值