Cent7Java调用so库

1安装前准备

1jdk安装,gcc安装

jdk:请百度,
gcc:yum -y install gcc gcc-c++ kernel-devel

1.2 编写java文件,用native申明要用c实现的函数,如果是在window写的,用ftp传到Linux,然后把文件放在合适的位置(如果源程序是包含在package里的话,应该建立同样的文件夹结构,我这里是/home/test/bbaa)

package bbaa;

public class YuServer {
    static {
        System.load("/home/test/bbaa/yuluoNet.so");
    }

    public static void main(String[] args) {
         conn();
    }
    public static native void conn();
}

注意网上的教程是:

System.loadLibrary("yuluoNet");

这里有些问题,可能是我用yum安装jdk导致的,后面加载库的时候,设置了路径但是无效,会报一个错,.so文件没有在库文件路径上。

1.3在YuServer.java文件所在目录下编译.java文件

javac YuServer.java

1.4 在/test调用Javah生成.h文件,注意网上的教程有些问题,不知道是我电脑的问题还是什么,网上的是javah 包名+类名,按照这样,电脑报错,找不到类文件,或者是没有一个准确的类名字,下面是我自己摸索出来的,

javah -classpath /home/test bbaa.YuServer

1.5编写.c文件,实现引用第4步中生成的.h头文件,并实现其中声明的方法,

h文件:

在这里插入图片描述
在这里插入图片描述c文件:
把.h文件引入,然后实现.h文件里的方法,这里的红线只是我用windows的vscode打开,它找不到文件,

1.6 将第5步中编写的.c文件,编译成.so文件`

gcc  -fPIC -I /usr/lib/jvm/java-1.8.0-openjdk/include -I /usr/lib/jvm/java-1.8.0-openjdk/include/linux  -shared -o yuluoNet.so server.c

这里的 /usr/lib/jvm/java-1.8.0-openjdk/include -I /usr/lib/jvm/java-1.8.0-openjdk/include/linux 是为了引入第4步第一张图里的jni.h和jni_md.h文件,你可以cd到那里,如果没有,你就去你jdk的安装位置下去找。

1.7 将第6步中生成的.so文件拷贝到java的加载库LD_LIBRARY_PATH指向的路径中,这里就是我第二步所说的问题,由于不排除是我的电脑问题,所以还是记录,在root下,执行命令:

export LD_LIBRARY_PATH=/home/test/bbaa

这里的路径就是你的.so文件所在的路径

运行

在/test下,一切正常的话,程序会按照你编写的代码运行。

java bbaa.YuServer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,下面是一些常见的使用教程: 1. 安装CentOS 7: - 下载CentOS 7的ISO镜像文件,并将其写入USB驱动器或光盘。 - 将USB驱动器或光盘插入计算机,并启动计算机。 - 在引导时选择从USB驱动器或光盘启动。 - 按照屏幕上的提示进行安装设置,包括分区设置、网络配置和root密码等。 2. 基本命令: - 登录:使用root账户或其他具有管理员权限的账户登录。 - 更新软件包:使用以下命令更新软件包。 ``` yum update ``` - 安装软件包:使用以下命令安装软件包。 ``` yum install 软件包名称 ``` - 卸载软件包:使用以下命令卸载软件包。 ``` yum remove 软件包名称 ``` - 关闭防火墙:使用以下命令关闭防火墙。 ``` systemctl stop firewalld ``` 3. 网络配置: - 静态IP地址配置:编辑`/etc/sysconfig/network-scripts/ifcfg-eth0`文件,修改IP地址、网关、DNS等配置。 - 重启网络服务:使用以下命令重启网络服务。 ``` systemctl restart network ``` - 配置网络防火墙:使用firewalld或iptables命令配置网络防火墙规则。 4. 用户管理: - 创建用户:使用以下命令创建新用户。 ``` adduser 用户名 ``` - 设置密码:使用以下命令为用户设置密码。 ``` passwd 用户名 ``` - 授予管理员权限:将用户添加到sudo组,以授予管理员权限。 ``` usermod -aG sudo 用户名 ``` 这些是CentOS 7的一些基本使用教程,还有很多其他方面的内容可以进一步探索和学习。如果你对特定主题有更详细的问题,可以告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值