公司要做个跟设备打交道的web系统,需要java调用dll。搞java的同事说JNative看起来挺好使的,找俺帮忙调通。用的是1.3.1版本

  1. 环境设置。

    JNative的调试信息需要打开才能更清楚些,要不总是说没加载库,跟没说一样。

    System.setProperty("jnative.debug", "true");

    如果调试信息里有System.LoadLibrary(),说明没有加载JNativeCpp.dll,指定全路径即可,双斜杠哦。

    System.setProperty("jnative.loadNative", "D:\\Test\\JNativeCpp.dll");

  2. lib库路径问题
    • windows

      在windows下需要把调用的dll路径设置到环境变量PATH中,除非你不介意拷到win32中,dll依赖的库也得在PATH或win32中。

    • linux

      linux下同样需要设置环境变量,编辑bashrc,添加 export LD_LIBRARY=so路径,依赖的库也得在PATH中,除非都放在/usr/lib/下

  3. lib库名称问题

    无论linux还是windows在JNative的构造函数中的lib库名字为库全名,包括扩展名dll、so,而且so需要包括前面的‘lib’,貌似与网上说的不太一样。

  4. 资源释放问题

    有些设备需要先初始化在操作,最后释放,所有功能都分散在不同函数中,JNative需要有个静态的实例,每次创建调用函数时lib库依旧是加载的。

顺便吐槽下公司部署前2天才通知说在linux下部署,可怜我这linux、java双小白。。。。。。

JNative用法注意事项的更多相关文章

  1. 关于setTimeout的用法注意事项

    setTimeout setTimeout的定义:setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. setTimeout的用法:setTimeout(代码片段,执行代码等待的毫 ...

  2. 日期控件jsdate用法注意事项

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. abstract 和 interfaces 的用法注意事项

    abstract :  abstract class calssname{} 1.abstract也可也修饰普通的类,这样的目的是为了防止用这个类来创建对象: 2.abstract中的abstract ...

  4. php构造函数construct用法注意事项

    <?php class A { //特别注意,这里的下划线为两个 function __construct() { echo "I am the constructor of A.&l ...

  5. vector.erase用法注意事项

    转自->这里 vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase(iterat ...

  6. ::WritePrivateProfileString()的用法,以及GetPrivateProfileString的用法注意事项

    WritePrivateProfileString(_T("Section1"),_T("Field1"),Field,savePath); 函数说明,这是在写 ...

  7. vector中erase用法注意事项

    以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错.今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.e ...

  8. 数据库sql中distinct用法注意事项

    在写sql中去重复等操作,需要用到distinct. 在使用distinct的时候要注意,尤其是在有行列转换的时候.要把sql运行出来看看是不是与你想要的结果一样. 通过自己试验,distinct有从 ...

  9. Less用法注意事项

    (1)引入顺序 引入你的 .less 样式文件的时候要设置 rel 属性值为 “stylesheet/less”: <link rel="stylesheet/less" t ...

随机推荐

  1. 整数分解为若干项之和 - PAT

    深度搜索,一开始没有想到,说明基本功还是不够啊,加油 //======================================================================= ...

  2. spring boot 笔记--第三章

    spring boot 笔记 第三章,使用Spring boot 构建系统: 强烈建议支持依赖管理的构建系统,Maven或Gradle 依赖管理: Spring Boot的每版本都会提供它支持的依赖列 ...

  3. node查询mongo

    http://www.cnblogs.com/whoamme/p/3467374.html nosql的数据库的查询:可以分为查询所有,查询一个,条件查询,和表的关联查询.(这个另外在写一个独立的mo ...

  4. flask学习(七):URL反转

    1. 什么叫反转URL:从视图函数到url的转换叫做反转url 2. 反转url的用处: 1) 在页面重定向的时候,会使用url反转 2) 在模板中,也会使用url反转 3. 实例: 打印出了url

  5. HDU 3397 线段树区间修改

    Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  6. Spring源码解析-IOC容器的实现

    1.IOC容器是什么? IOC(Inversion of Control)控制反转:本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IOC容器,Spring的IO ...

  7. 024——VUE中filter的使用

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. C#笔记 -- 协变、逆变

    协变 理解:在泛型和委托中, 让使用某个泛型参数A的类型可以用一个使用由A派生的泛型参数B的类型实例化,(小=> 大)如 ​ // IEnumerable<Animal> 与 Lis ...

  9. C# 设计模式巩固 - 抽象工厂模式

    前言   继续工厂模式高级版,抽象工厂模式.抽象工厂模式其实是从工厂方法模式拓展而来.在实际的生活中一个工厂的产品不可能是单一的,肯定是多种系列的产品. 介绍 - 抽象工厂模式 定义:(摘自百度百科~ ...

  10. SpringAnnotation注解之@Component,@Repository,@Service,@Controller

    @Component:组件,表示此写上了此注解的bean,作为一个组件存在于容器中.这样的话别的地方就可以使用@Resource这个注解来把这个组件作为一个资源来使用了.初始化bean的名字为类名首字 ...