Netty | 开启 Linux 平台下的 Native
如何开启 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#load
或java.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相关推荐
- 【转】在 Linux 平台下使用 JNI
引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试:如果我们的应用中需要访 ...
- 在 Linux 平台下使用 JNI
原文地址: http://www.ibm.com/developerworks/cn/java/l-linux-jni/ 引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经 ...
- linux网卡握手速率模式,一种基于Linux平台下的网卡速率和双工模式测试的方法与流程...
本发明涉及计算机技术领域,更具体的说是涉及一种基于Linux平台下的网卡速率和双工模式测试的方法. 背景技术: 随着社会经济的发展和互联网技术的进步,如今把计算机网络使得我们的生活变得更加方便,快捷. ...
- linux安防监控,Linux平台下的安防监控系统设计与实现
摘要: 随着经济的飞速发展和科技进步,人们越来越关注居家安全,安防产品应运而生,其中安防监控系统更是备受关注.本文以提高安防系统的智能化水平为目标,设计和实现了一款Linux平台下的安全防范监控系统. ...
- linux系统搭建论坛,在Linux平台下搭建discuz论坛
在Linux平台下搭建discuz论坛 [日期:2007-11-08] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] 环境 linux AS4 2.6.9 1.安装MySQL 使 ...
- linux平台下防火墙iptables原理(转)
原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介 netfilter/iptables( ...
- linux查看地址和,UNIX/LINUX平台下查看MAC和WWN地址的方法
归纳了一下,在UNIX/LINUX平台下查看MAC和WWN地址的方法 查看MAC地址 hp-ux #lanscan tru64 unix #netstat -ia aix #lsdev -Cc if ...
- Arduino可穿戴教程Linux平台下安装Arduino IDE
Arduino可穿戴教程Linux平台下安装Arduino IDE Linux平台下安装Arduino IDE Linux平台下的安装方式和Windows下的zip形式安装是类似的,只是Linux下的 ...
- linux共享文件丢失,【干货分享】linux平台下数据文件被误删后,如何及时得知并进行恢复...
原标题:[干货分享]linux平台下数据文件被误删后,如何及时得知并进行恢复 我们知道在windows平台下,一旦文件在程序中打开,则不能被删除,所以不存在误删数据文件的情况,如下图所示. 但是在LI ...
最新文章
- 如何像算法工程师一样,看待这个世界?
- 数据仓库中宽表的设计原则_实际项目中交互设计原则的运用
- Java中常见的几种类型转换
- 开始使用Jenkins
- ubuntu下文件名乱码的解决办法
- nutshell_Nutshell中的Java 8语言功能-第1部分
- html中hr的各种样式使用
- Spring 创建Bean的三种方式
- 逻辑回归python实现
- python urllib3离线安装_离线安装spyder的Python环境
- android逆向学习路线(适合新手)
- 免费 WebOffice使用
- docker方式安装redis-自定义redis配置文件
- 微信小程序统一服务消息接口
- 数字图像处理(三)图像复原(噪声生成,噪声滤波器,逆滤波,维纳滤波,有约束最小二乘恢复)
- 2021年C/C++Linux服务器开发/后台架构师知识体系整理(持续更新中)
- rk3566 HDMI 热插拔HDMI显示无信号
- Sql语句——删除表数据drop、truncate和delete的用法
- 无线控制需要服务器,H3C无线控制器与LDAP服务器配合进行远程Portal认证可以做么?...
- ffmpeg脚本 自动把单张图片生成视频