java调用linux驱动,Linux下使用JNATIVE对三汇驱动API的JAVA封装说明 java-linux-demo

本帖最后由 gaoweiliang 于 2016-2-2 16:08 编辑

本文讲述如何在Linux下搭建基于三汇语音卡开发JAVA程序的环境,以下操作均在CentOS 5.5上执行并且验证通过。

一、Linux下JAVA开发环境搭建

1、下载jdk for linux

2、安装jdk

在shell终端下进入jdk-7u2-linux-i586.rpm文件所在目录,执行命令rpm –ivh jdk-7u2-linux-i586.rpm这时会下载一些JAR包并安装。安装完成后,jdk默认路径是/usr/java/jdk1.7.0_02

3、Jnative下载安装

解压缩后,将libJNativeCpp.so拷贝到/usr/lib目录下

将Jnative.jar拷贝到/usr/java/jdk1.7.0_02/jre/lib目录下,在后续创建JAVA工程时需将Jnative.jar文件导入到JAVA工程中。

然后在终端下执行如下命令修改libJnativeCpp.so的安全上下文:

chcon –t texrel_shlib_t /usr/lib/libJNativeCpp.so

4、NetBean的安装

到NetBean的主页http://netbeans.org/downloads/index.html,下载netbeans-7.1-ml-javase-linux.sh,执行该shell脚本进行安装。按照提示一直下一步安装即可。

3、需要配置的环境变量

1). PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了。

2). CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

3). JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

4、三种配置环境变量的方法

1). 修改/etc/profile文件

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

·用文本编辑器打开/etc/profile

·在profile文件末尾加入:

JAVA_HOME=/usr/java/jdk1.7.0_02

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

·重新登录

·注解

a. 你要将/usr/java/jdk1.7.0_02改为你的jdk安装目录

b. linux下用冒号“:”来分隔路径

c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。

d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。

e. export是把这三个变量导出为全局变量。

f. 大小写必须严格区分。

2). 修改.bashrc文件

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。

·用文本编辑器打开用户目录下的.bashrc文件

·在.bashrc文件末尾加入:

set JAVA_HOME=/usr/java/jdk1.7.0_02

export JAVA_HOME

set PATH=$JAVA_HOME/bin:$PATH

export PATH

set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export CLASSPATH

·重新登录

3). 直接在shell下设置变量

不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。

只需在shell终端执行下列命令:

export JAVA_HOME=/usr/share/jdk1.5.0_05

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5、测试jdk

1. 用文本编辑器新建一个Test.java文件,在其中输入以下代码并保存:

public class test

{

public static void main(String args[])

{

System.out.println("A new jdk test !");

}

}

2. 编译:在shell终端执行命令 javac Test.java

3. 运行:在shell终端执行命令 java Test

当shell下出现“A new jdk test !”字样则jdk运行正常。

6、卸载jdk

·找到jdk安装目录的_uninst子目录

·在shell终端执行命令./uninstall.sh即可卸载jdk。

二、三汇板卡驱动安装

Linux下使用三汇板卡,需安装对应Linux发行版本、内核版本的驱动程序。

三、使用NetBean创建JAVA工程

Demo功能简单介绍:

1.  该demo实现两个简单功能,通过座席呼叫外线;外线呼入后转入分机。

2.  通过座席呼叫外线流程模式:检测到座席摘机后,程序自动选择一个空闲的外线通道与它进行对接。拨号方式采用追加方式拨号。

3.  外线呼入后转分机:检测到外线振铃后,程序自动选择一个空闲的座席进行对接,可以正常获取到主叫号码,并将该主机号码发送到座席端,如果没有主叫号码,座席也能正常振铃和外部通话。

4.  注意:在jvm上面调用我方A3 DLL函数我使用的桥接工具是JNative工具。

JAVA-Linux-Demo程序包含的文件目录如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
准备工作: 1.编译JnativeCpp 2.将编译出来的libJNativeCpp.so,拷贝到/usr/lib/,同时执行chmod 555 libJNativeCpp.so 测试过程简介 1.c测试库libtest.so 环境:ubuntu10.4下 语言:c 编译库名称为:libtest.so 涉及文件:so_test.h test_a.c test_b.c test_c.c 终端执行命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so 将编译得到到libtest.so拷贝到/usr/lib/,同时执行chmod 555 libtest.so 2.qt测试库libmylib.so 环境:ubuntu10.4下 语言:c 编译工具:qt Creator 编译库名称为:libmylib.so 将编译得到到libmylib.so拷贝到/usr/lib/,同时执行chmod 555 libmylib.so 3.编译环境安装 a.安装jdk 1.6 b.安装netBeans 6.8 c.创建javaApp工程 d.将JNative.jar添加到工程中 e.参考如下代码,编写后编译执行,并运行 import org.xvolks.jnative.JNative; import org.xvolks.jnative.Type; import org.xvolks.jnative.exceptions.NativeException; public class Main { public static void main(String[] args) throws NativeException, IllegalAccessException{ //纯c写到动态库 JNative clib = new JNative("libtest.so", "test_a"); //调用libtest.so下到test_a函数 clib.setRetVal(Type.STRING); //设置此函数的返回值 clib.invoke(); //函数执行 System.out.println(clib.getRetVal());//输出函数返回结果 //qt写到动态库 //以下部分使用qt编译到so,注意在函数声明前加 extern "C" //如extern "C" const char* getLocalHost(); JNative getstring = new JNative("libmylib.so", "getstring"); getstring.setRetVal(Type.STRING); getstring.invoke(); System.out.println(getstring.getRetVal()); } } 4.输出结果 this is in test_a... getstring hello .....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值