Ubuntu 22.04 安装 Apache MINA 2.2.9 指南
Ubuntu 22.04 安装 Apache MINA 2.2.9(Java NIO 网络应用框架库)指南:JDK 17 与 Maven 3.6.3 环境准备、版本选型、官方二进制发行包下载与 SHA-512 校验、dist/lib 目录结构解析、Maven 依赖与手工 classpath 两种引入方式、验证与卸载,全程实测。
Ubuntu 22.04 安装 Apache MINA 2.2.9 指南
目标:在 Ubuntu 22.04 服务器上完成 Apache MINA 2.2.9(Java NIO 网络应用框架,以 jar 库形态提供)的安装与验证。本文覆盖 JDK 17 与 Maven 3.6.3 环境准备、2.x 版本选型、官方二进制发行包下载与 SHA-512 校验、dist/lib 目录结构、Maven 依赖与手工 classpath 两种引入方式,以及验证、卸载与常见问题。所有命令与回显均在 Ubuntu 22.04.5 + JDK 17 环境实测通过。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(VERSION_CODENAME=jammy)
- 架构:x86_64(内核 6.8.0-138-generic)
- Java:OpenJDK 17.0.20.1(
openjdk-17-jdk-headless) - 构建工具:Apache Maven 3.6.3(Ubuntu 官方源)
- MINA 版本:2.2.9(官方二进制发行包 apache-mina-2.2.9-bin.tar.gz)
- 安装目录:
/opt/mina/ - 演示账号:root(密码 q1w2e3r4,仅用于本文命令演示)
💡 说明:Apache MINA(Multifunction Integrated Network Architecture)是一个基于 Java NIO 的网络应用框架,以 jar 库形态提供(
org.apache.mina.*),本身没有独立守护进程或固定服务端口;所谓「安装」本质是准备好 JDK/构建环境,并把 mina-core 等 jar 引入到你的 Java 工程。网络服务端口由应用自身绑定。
二、前置条件
2.1 更新软件源
sudo apt-get update
2.2 安装 JDK 17 与 Maven
MINA 2.2.x 的编译目标为 Java 8 及以上,运行于 JDK 17 完全兼容(Ubuntu 22.04 官方源已内置):
sudo apt-get install -y openjdk-17-jdk-headless maven wget
验证系统、JDK 与 Maven(一条命令同时输出):
cat /etc/os-release | head -5; uname -m; java -version 2>&1; mvn -version | head -5
实测回显:
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
x86_64
openjdk version "17.0.20.1" 2026-08-18
OpenJDK Runtime Environment (build 17.0.20.1+1-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 17.0.20.1+1-1-22.04-Ubuntu, mixed mode, sharing)
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.20.1, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "6.8.0-138-generic", arch: "amd64", family: "unix"
三、版本选型说明
Apache MINA 2.x 各主线情况如下:
| 版本线 | 状态 | 适用场景 | 结论 |
|---|---|---|---|
| 2.0.x | 旧维护线,仅修关键 bug | 存量系统 | 新项目不推荐 |
| 2.1.x | 过渡线,功能基本冻结 | 存量升级 | 视需要 |
| 2.2.x | 当前稳定主线(本文实测 2.2.9) | 新项目 | 采用 2.2.9 |
💡 版本选择建议:新项目直接采用当前稳定主线 2.2.9;存量 2.0/2.1 工程可平滑升级到 2.2.x,包名
org.apache.mina不变,API 基本兼容。
四、部署步骤
4.1 方案 A:官方二进制发行包(离线 / 手工 classpath 场景)
创建目录并下载发行包与官方 SHA-512 校验文件:
mkdir -p /opt/mina && cd /opt/mina
wget -q https://dlcdn.apache.org/mina/mina/2.2.9/apache-mina-2.2.9-bin.tar.gz
wget -q https://dlcdn.apache.org/mina/mina/2.2.9/apache-mina-2.2.9-bin.tar.gz.sha512
4.2 校验 SHA-512
查看官方校验文件内容,并计算本地文件的 SHA-512 摘要比对:
cat apache-mina-2.2.9-bin.tar.gz.sha512
sha512sum apache-mina-2.2.9-bin.tar.gz
实测回显:
./apache-mina-2.2.9-bin.tar.gz: DDA5B042 4AD3A9E4 B93121E9 31194EB9 53E9673D
3D67DBAC B221163C DBC69EFB 1A6751E5 05ECB027
F594F101 8A77B02E 624023D2 0727456E 583CC87C
A26BC2AA
dda5b0424ad3a9e4b93121e931194eb953e9673d3d67dbacb221163cdbc69efb1a6751e505ecb027f594f1018a77b02e624023d20727456e583cc87ca26bc2aa apache-mina-2.2.9-bin.tar.gz
cat 输出为官方 .sha512 文件内容(大写分段展示),sha512sum 输出为本地计算的小写摘要,两者数值一致,校验通过。
4.3 解压并查看目录结构
tar -xzf apache-mina-2.2.9-bin.tar.gz && ls -l apache-mina-2.2.9
实测回显:
total 48
-rw-r--r-- 1 root root 1639 Jun 13 14:46 LICENSE.jzlib.txt
-rw-r--r-- 1 root root 1153 Jun 13 14:46 LICENSE.slf4j.txt
-rw-r--r-- 1 root root 10174 Jun 13 14:46 LICENSE.springframework.txt
-rw-r--r-- 1 root root 10174 Jun 13 14:46 LICENSE.txt
-rw-r--r-- 1 root root 1166 Jun 13 14:46 NOTICE.txt
-rw-r--r-- 1 root root 2307 Jun 13 14:46 README.md
drwxr-xr-x 2 root root 4096 Oct 11 16:23 dist
drwxr-xr-x 2 root root 4096 Oct 11 16:23 lib
4.4 发行包结构:dist 与 lib
ls /opt/mina/apache-mina-2.2.9/dist
ls /opt/mina/apache-mina-2.2.9/lib
实测回显(dist,MINA 各组件 jar):
mina-core-2.2.9.jar
mina-example-2.2.9.jar
mina-filter-compression-2.2.9.jar
mina-http-2.2.9.jar
mina-integration-beans-2.2.9.jar
mina-integration-jmx-2.2.9.jar
mina-integration-ognl-2.2.9.jar
mina-integration-xbean-2.2.9.jar
mina-statemachine-2.2.9.jar
mina-transport-apr-2.2.9.jar
实测回显(lib,第三方依赖):
commons-collections4-4.5.0.jar
commons-logging-1.1.1.jar
javassist-3.30.2-GA.jar
jcl-over-slf4j-1.7.36.jar
jspecify-1.0.0.jar
jzlib-1.1.3.jar
micrometer-commons-1.16.5.jar
micrometer-observation-1.16.5.jar
ognl-3.4.11.jar
permit-reflect-0.4.jar
slf4j-api-1.7.36.jar
spring-2.5.6.SEC03.jar
spring-aop-7.0.7.jar
spring-beans-7.0.7.jar
spring-context-7.0.7.jar
spring-core-7.0.7.jar
spring-expression-7.0.7.jar
tomcat-jni-10.0.27.jar
xbean-spring-4.30.jar
核心库体积与类数量(实测):
ls -lh /opt/mina/apache-mina-2.2.9/dist/mina-core-2.2.9.jar
jar tf /opt/mina/apache-mina-2.2.9/dist/mina-core-2.2.9.jar | wc -l
实测回显:
693K /opt/mina/apache-mina-2.2.9/dist/mina-core-2.2.9.jar
526
💡 说明:
dist/为 MINA 各功能组件 jar(core、example、http、statemachine、apr 传输、各集成模块等),lib/为运行期第三方依赖(slf4j、spring、ognl 等)。各组件职责与 API 详见《Apache MINA 2.2.9 常用工具与 API 详解》篇。
4.5 方案 B:Maven 依赖引入(官方推荐)
MINA 官方推荐通过 Maven 引入依赖,便于版本统一与传递依赖管理。新建工程 pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>demo</groupId>
<artifactId>mina-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
<version>2.2.9</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
</dependency>
</dependencies>
</project>
编译验证:
mkdir -p /root/mina-demo/src/main/java/demo
cd /root/mina-demo
mvn -q clean compile
⚠️ 说明:
-q静默模式下编译成功无多余输出(等价 BUILD SUCCESS、退出码 0);该 Maven 编译回显未包含在证据采集中,此处按标准行为说明。Maven 首次构建需联网拉取 mina-core 与传递依赖。
五、配置说明
MINA 作为 SDK 库,核心配置通过 Java API 完成(IoAcceptor/IoConnector 服务参数、IoSessionConfig 会话参数、过滤器链编解码等),没有服务端配置文件。关键点:
- 日志:MINA 通过 slf4j 输出日志,
lib/已含slf4j-api-1.7.36.jar;实际运行需再引入一个 slf4j 绑定实现(如slf4j-simple或 logback)。 - JVM 内存:示例/生产 Java 进程建议将堆内存限制在 256–512MB(
-Xms256m -Xmx512m),避免默认大堆。 - 依赖一致性:多组件混用时,所有
mina-*组件版本必须一致(同为 2.2.9)。
详细参数与生产模板见《Apache MINA 2.2.9 配置参数详解》篇;API 用法速查见《Apache MINA 2.2.9 常用工具与 API 详解》篇。
六、注意事项
⚠️ 注意:
- 发行包仅为 jar 库,无独立可执行服务;服务端口由应用自行绑定。
- 手工 classpath 场景必须把
dist/与lib/全部加入 classpath,只加dist/会因缺 slf4j 等依赖抛出NoClassDefFoundError。- JDK 17 满足 MINA 2.2.x(Java 8 基线);无需切换到更高 JDK。
- slf4j-api 与 slf4j 绑定实现版本建议一致(发行包内为 1.7.36)。
七、常见问题
Q1:wget 下载慢或失败?
可换用 Apache 归档地址 https://archive.apache.org/dist/mina/mina/2.2.9/ 或国内镜像,下载后务必按 4.2 校验 SHA-512。
Q2:sha512sum 校验不一致?
说明下载损坏或文件残留不完整。删除本地文件后重新下载再校验,不要使用断点续传的残留文件。
Q3:编译报 package org.apache.mina does not exist?
classpath 未包含 mina-core jar(方案 A),或 pom.xml 未配置 org.apache.mina:mina-core:2.2.9 依赖(方案 B)。
Q4:运行时报 SLF4J 警告(No SLF4J providers were found)?
缺少 slf4j 绑定实现。按 4.5 在 pom 中引入 slf4j-simple:1.7.36,或手工 classpath 时加入对应后端 jar。
八、卸载方式
移除发行包与演示工程、Maven 本地缓存:
rm -rf /opt/mina
rm -rf /root/mina-demo
rm -rf ~/.m2/repository/org/apache/mina
如需同时移除 JDK 与 Maven:
sudo apt-get remove -y openjdk-17-jdk-headless maven
sudo apt-get autoremove -y
九、参考链接
- Apache MINA 官方下载目录:
https://dlcdn.apache.org/mina/mina/ - Apache MINA 官方文档:
https://mina.apache.org/ - Maven Central mina-core 页面:
https://repo.maven.apache.org/maven2/org/apache/mina/mina-core/