如何开启 Native

  • 修改代码,各种 Nio 都改成 Epoll 就行了,但是改完之后的代码只能运行在 Linux 上(前两天升级 Win10 后机器变砖了,然后就装了 Ubuntu,开发用 Ubuntu 还真挺好的):

    • NioServerSocketChannel -> EpollServerSocketChannel;
    • NioEventLoopGroup -> EpollEventLoopGroup;
  • 准备好 Native 库,自己 build;
  • Netty 也自带了一些库;

源码分析 Native 库(.so)的加载逻辑

  • 先尝试加载 java.library.path:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib;
  • 如果加载不到,会尝试去 Netty jar 包(~/.m2/...)中的 META-INF/native/ 加载;
  • 总之就是各种多系统支持的逻辑、各种找 Native 库在哪里的逻辑,完了最终调的是 JDK 的 API:java.lang.System#loadjava.lang.System#loadLibrary

Native 相关的参数

  • io.netty.transport.noNative
  • io.netty.native.workdir:如果是在 META-INF/native/ 中加载,则需要一个临时目录存加载到的 Native 库;
  • io.netty.native.deleteLibAfterLoading:在 JVM 退出的时候把临时文件删掉;

Linux 下开启 Native 的常见问题

  • 准备的 Native 库文件是 64 位的,但系统是 32 位的;
  • 拷贝出来的临时 Native 库文件没有可执行权限;
    • 解决方案一:mount -o remount,exec /tmp
    • 解决方案二:直接换到一个有权限的目录,设置系统参数 -Dio.netty.native.workdir=[path]

Netty | 开启 Linux 平台下的 Native相关推荐

  1. 【转】在 Linux 平台下使用 JNI

    引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试:如果我们的应用中需要访 ...

  2. 在 Linux 平台下使用 JNI

    原文地址: http://www.ibm.com/developerworks/cn/java/l-linux-jni/ 引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经 ...

  3. linux网卡握手速率模式,一种基于Linux平台下的网卡速率和双工模式测试的方法与流程...

    本发明涉及计算机技术领域,更具体的说是涉及一种基于Linux平台下的网卡速率和双工模式测试的方法. 背景技术: 随着社会经济的发展和互联网技术的进步,如今把计算机网络使得我们的生活变得更加方便,快捷. ...

  4. linux安防监控,Linux平台下的安防监控系统设计与实现

    摘要: 随着经济的飞速发展和科技进步,人们越来越关注居家安全,安防产品应运而生,其中安防监控系统更是备受关注.本文以提高安防系统的智能化水平为目标,设计和实现了一款Linux平台下的安全防范监控系统. ...

  5. linux系统搭建论坛,在Linux平台下搭建discuz论坛

    在Linux平台下搭建discuz论坛 [日期:2007-11-08] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] 环境 linux AS4 2.6.9 1.安装MySQL 使 ...

  6. linux平台下防火墙iptables原理(转)

    原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介 netfilter/iptables( ...

  7. linux查看地址和,UNIX/LINUX平台下查看MAC和WWN地址的方法

    归纳了一下,在UNIX/LINUX平台下查看MAC和WWN地址的方法 查看MAC地址 hp-ux #lanscan tru64 unix #netstat -ia aix #lsdev -Cc if ...

  8. Arduino可穿戴教程Linux平台下安装Arduino IDE

    Arduino可穿戴教程Linux平台下安装Arduino IDE Linux平台下安装Arduino IDE Linux平台下的安装方式和Windows下的zip形式安装是类似的,只是Linux下的 ...

  9. linux共享文件丢失,【干货分享】linux平台下数据文件被误删后,如何及时得知并进行恢复...

    原标题:[干货分享]linux平台下数据文件被误删后,如何及时得知并进行恢复 我们知道在windows平台下,一旦文件在程序中打开,则不能被删除,所以不存在误删数据文件的情况,如下图所示. 但是在LI ...

最新文章

  1. 如何像算法工程师一样,看待这个世界?
  2. 数据仓库中宽表的设计原则_实际项目中交互设计原则的运用
  3. Java中常见的几种类型转换
  4. 开始使用Jenkins
  5. ubuntu下文件名乱码的解决办法
  6. nutshell_Nutshell中的Java 8语言功能-第1部分
  7. html中hr的各种样式使用
  8. Spring 创建Bean的三种方式
  9. 逻辑回归python实现
  10. python urllib3离线安装_离线安装spyder的Python环境
  11. android逆向学习路线(适合新手)
  12. 免费 WebOffice使用
  13. docker方式安装redis-自定义redis配置文件
  14. 微信小程序统一服务消息接口
  15. 数字图像处理(三)图像复原(噪声生成,噪声滤波器,逆滤波,维纳滤波,有约束最小二乘恢复)
  16. 2021年C/C++Linux服务器开发/后台架构师知识体系整理(持续更新中)
  17. rk3566 HDMI 热插拔HDMI显示无信号
  18. Sql语句——删除表数据drop、truncate和delete的用法
  19. 无线控制需要服务器,H3C无线控制器与LDAP服务器配合进行远程Portal认证可以做么?...
  20. ffmpeg脚本 自动把单张图片生成视频

热门文章

  1. APP开发流程注意事项有哪些
  2. 远程访问云服务器CentOS下 jupyter服务 【保姆级教程】
  3. 安霸平台led芯片aw9523b调试
  4. Bitmap高效加载
  5. 全模型驱动架构(f-MDA)的基本思想
  6. Invertible Denoising Network: A Light Solution for Real Noise Removal
  7. 四旋翼无人机学习第15节--PCB Editor简单绘制封装-手动绘制封装
  8. 一文教你掌握广义估计方程
  9. 创业项目怎么获得专业的投融资服务?
  10. 加法要遍历两遍所有元素,那就用减法,只遍历一遍即可(思想)