Apache SIS 安装指南
Ubuntu 22.04 服务器安装 Apache SIS 1.6 的实测指南:覆盖 JDK 17 环境准备、官方压缩包下载与校验、解压部署与环境变量配置、GDAL 模块兼容问题处理、安装验证与大地数据集安装,附源码构建备选方案、多方案对比与卸载方式,命令与回显逐条实测。
Apache SIS 安装指南
目标:在 Ubuntu 22.04 服务器上完成 Apache SIS 1.6(地理空间信息系统 Java 库 + 命令行工具)的安装与验证。本文给出官方二进制包安装(推荐)与源码构建两种方案,含 sha512 校验、环境变量配置、GDAL 模块兼容排障、EPSG 大地数据集安装与卸载方式。所有命令与回显均在 Ubuntu 22.04.5 + JDK 17 环境实测通过。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(VERSION_CODENAME=jammy)
- 架构:x86_64
- Java:OpenJDK 17.0.20.1(
openjdk-17-jdk,Ubuntu 官方源) - Apache SIS 版本:1.6(当前最新稳定版,官方发行目录
https://dlcdn.apache.org/sis/1.6/) - 安装目录:
/opt/sis/apache-sis-1.6 - 数据目录:
/opt/sis/apache-sis-1.6/data - 演示账号:root
💡 说明:Apache SIS 既是可嵌入 Java 应用的地理空间类库(坐标参照系、坐标转换、ISO 19115 元数据读写),也附带一个
sis命令行工具,可直接在终端体验 CRS 解析、坐标转换、元数据提取等能力,无需写代码。
二、前置条件
2.1 更新软件源并安装 JDK 与工具
SIS 1.6 官方要求 Java 11 或更高(除 GDAL 模块需 Java 22、图形应用需 Java 22+),Ubuntu 22.04 官方源的 openjdk-17 直接可用:
sudo apt-get update
sudo apt-get install -y openjdk-17-jdk wget unzip
验证 JDK:
java -version
实测回显:
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 官方发行目录当前提供的版本:
wget -qO- https://dlcdn.apache.org/sis/1.6/ | grep -oE "href=\"[^\"]+\""
实测返回(节选):
href="apache-sis-1.6-bin.zip"
href="apache-sis-1.6-bin.zip.asc"
href="apache-sis-1.6-bin.zip.sha512"
href="apache-sis-1.6-doc.zip"
href="apache-sis-1.6-doc.zip.asc"
href="apache-sis-1.6-doc.zip.sha512"
href="apache-sis-1.6-src.zip"
版本与 JDK 要求对照:
| 发行物 | 说明 | Java 要求 |
|---|---|---|
| apache-sis-1.6-bin.zip | 预编译类库 + 命令行工具(本文主测) | Java 11+(GDAL 模块需 Java 22) |
| apache-sis-1.6-src.zip | 源码(Gradle 工程) | 构建需 Java 22+,产物可运行于 Java 11+ |
| apache-sis-1.6-doc.zip | 离线 Javadoc 与文档 | 无 |
💡 历史版本可从 Apache 归档目录
https://archive.apache.org/dist/sis/获取。本文全程按 1.6 + JDK 17 实测。
四、方案 A:官方二进制包安装(推荐)
4.1 下载与 sha512 校验
mkdir -p /tmp/sis-dl && cd /tmp/sis-dl
wget -q https://dlcdn.apache.org/sis/1.6/apache-sis-1.6-bin.zip https://dlcdn.apache.org/sis/1.6/apache-sis-1.6-bin.zip.sha512
sha512sum -c apache-sis-1.6-bin.zip.sha512
ls -lh apache-sis-1.6-bin.zip
实测回显:
apache-sis-1.6-bin.zip: OK
-rw-r--r-- 1 root root 12M Jan 27 2026 apache-sis-1.6-bin.zip
4.2 解压与环境变量
解压后目录结构为 apache-sis-1.6/{bin,conf,data,lib,log},将其移至 /opt/sis 并配置环境变量:
cd /tmp/sis-dl
unzip -q apache-sis-1.6-bin.zip
mkdir -p /opt/sis && mv apache-sis-1.6 /opt/sis/
写入 /etc/profile.d/sis.sh(所有登录会话生效):
cat > /etc/profile.d/sis.sh <<'EOF'
export SIS_HOME=/opt/sis/apache-sis-1.6
export PATH=$SIS_HOME/bin:$PATH
EOF
source /etc/profile.d/sis.sh
确认命令可用:
echo SIS_HOME=$SIS_HOME
which sis
实测回显:
SIS_HOME=/opt/sis/apache-sis-1.6
/opt/sis/apache-sis-1.6/bin/sis
💡 说明:官方 README 的安装指引为「解压后执行
./apache-sis-1.6/bin/sis,可将bin目录加入 PATH」。SIS_HOME用于标记安装位置便于管理;启动脚本内部实际使用的数据目录变量是SIS_DATA(默认取安装目录下data),详见《Apache SIS 配置参数详解》。
4.3 首次运行排障
问题 1:非交互环境报 tput 错误。 bin/sis 脚本在 COLUMNS 未定义时会调用 tput cols 取终端宽度,当终端变量未设置时该调用失败并使脚本退出:
sis --version
tput: No value for $TERM and no -T specified
(退出码 2)
解决:先导出 TERM(真实 SSH 登录会话自带 TERM,一般不会遇到):
export TERM=xterm-256color
问题 2:GDAL 模块与 JDK 17 不兼容。 发行包 lib/ 中自带的 GDAL 存储模块按 Java 22 编译(class 版本 66.0),JDK 17 首次运行报:
Error occurred during initialization of boot layer
java.lang.module.FindException: Error reading module: /opt/sis/apache-sis-1.6/bin/../lib/org.apache.sis.storage.gdal.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Unsupported major.minor version 66.0
(退出码 1)
解决:GDAL 是可选模块(用于 GDAL 库桥接的数据格式),核心功能不依赖它。按官方 README「仅 GDAL 模块需 Java 22」的说明,将其移出模块路径:
mkdir -p /opt/sis/apache-sis-1.6/lib-disabled
mv /opt/sis/apache-sis-1.6/lib/org.apache.sis.storage.gdal.jar /opt/sis/apache-sis-1.6/lib-disabled/
⚠️ 注意:若必须使用 GDAL 模块,请改装 Java 22+(Ubuntu 22.04 源内可用 openjdk-25 等),此时无需移动该 jar。
问题 3:sis --version 选项不存在。 SIS 控制台没有 --version 选项,版本信息用 sis about 查看:
sis --version
Option ?version? is not recognized.
(退出码 2)
4.4 验证安装
export TERM=xterm-256color
export SIS_OPTS="--encoding UTF-8"
sis about
实测回显:
Local configuration
├─Versions
│ ├─Apache SIS………………………………… 1.6
│ ├─Java………………………………………………… 17.0.20.1 (Ubuntu)
│ ├─Operating system………………… Linux 6.8.0-138-generic (amd64)
│ └─Geodetic dataset………………… Subset of EPSG
├─Localization
│ ├─Locale…………………………………………… English (United States)
│ │ └─ISO code…………………………… eng (US)
│ ├─Timezone……………………………………… Greenwich Mean Time (GMT)
│ │ └─Offset………………………………… UTC + 12:00 AM
│ ├─Current date and time…… October 12, 2026 at 12:01:33 PM GMT
│ └─Character encoding…………… US-ASCII (ANSI_X3.4-1968, cp367, csASCII, iso-ir-6, ASCII, iso_646.irv:1983, ANSI_X3.4-1986, ascii7, default, ISO_646.irv:1991, ISO646-US, IBM367, 646, us)
├─Plug-ins
│ └─Data formats…………………………… 11 entries
│ ├─Read……………………………………… NetCDF
│ ├─Read/write/create…… World file
│ ├─Read/write/create…… ASCII Grid
│ ├─Read……………………………………… BIL/BIP/BSQ
│ ├─Read……………………………………… CSV
│ ├─Read……………………………………… XML
│ ├─Read……………………………………… WKT
│ ├─Read/write……………………… folder
│ ├─Read/write/create…… GeoTIFF
│ ├─Read……………………………………… Landsat
│ └─Read/write/create…… GPS Exchange Format (GPX)
├─Logging
│ ├─Implementation……………………… java.util.logging
│ └─Level……………………………………………… CONFIG
│ └─org.apache.sis…………… FINE
└─Paths
├─User home directory………… /root
├─Current directory……………… /
├─Data directory……………………… /opt/sis/apache-sis-1.6/bin/../data
├─Java home directory………… /usr/lib/jvm/java-17-openjdk-amd64
└─Temporary files…………………… /tmp
(退出码 0)
Apache SIS 1.6 与 Geodetic dataset … Subset of EPSG 表明安装成功。SIS_OPTS="--encoding UTF-8" 用于让树形表格等非 ASCII 字符正常显示(不设置时树形字符会显示为问号,功能不受影响)。
4.5 EPSG 大地数据集安装
SIS 1.6 内置「Subset of EPSG」(常用 CRS 常量子集)。查询子集内的代码(如 EPSG:4326)直接返回 WKT 定义:
sis crs EPSG:4326
实测回显(安装完整库前,注意 Citation["Subset of EPSG"]):
GeographicCRS["WGS 84",
Datum["World Geodetic System 1984",
Ellipsoid["WGS 1984", 6378137.0, 298.257223563]],
CS[ellipsoidal, 2],
Axis["Latitude (B)", north],
Axis["Longitude (L)", east],
Unit["degree", 0.017453292519943295],
Usage[
Area["World"],
BBox[-90.00, -180.00, 90.00, 180.00]],
Id["EPSG", 4326, "9.9.1", Citation["Subset of EPSG"], URI["urn:ogc:def:crs:EPSG:9.9.1:4326"]],
Remark["Definitions from public sources. When a definition corresponds to an EPSG object (ignoring metadata), the EPSG code is provided as a reference where to find the complete definition."]]
(退出码 0)
查询子集外的代码(如 EPSG:6676)时报错并提示安装完整 EPSG 数据集:
sis crs EPSG:6676
No ?CoordinateReferenceSystem? object found for code ?6676?. However, only a subset of the EPSG geodetic dataset has been queried. See https://sis.apache.org/epsg.html for instruction about how to install the full EPSG database.
(退出码 199)
按官方指引,查询任意子集外的 CRS 代码即触发交互式安装流程:SIS 会请求授权从 Maven Central 下载 EPSG 数据集(约 24 MB,存入 data/Databases),并展示 EPSG 条款需两次确认:
sis crs EPSG:6676
交互过程实测(提示语与关键回显,条款全文约 90 行此处从略):
INFO [EPSGFactory] Creating EPSG schema in the
? ?jdbc:derby:/opt/sis/apache-sis-1.6/data/Databases/SpatialMetadata?
? database.
Installation of EPSG geodetic dataset is recommended for this operation.
This would use about 24 Mb in the "/opt/sis/apache-sis-1.6/data/Databases" directory.
Download and install now? (Yes/No) Downloading...
EPSG dataset terms of use
Revised 8 April 2016
https://epsg.org/terms-of-use.html
(EPSG 条款全文)
Accept those terms of use? (Yes/No) Installing EPSG geodetic dataset...
ProjectedCRS["JGD2011 / Japan Plane Rectangular CS VIII",
BaseGeogCRS["JGD2011",
Datum["Japanese Geodetic Datum 2011",
Ellipsoid["GRS 1980", 6378137.0, 298.257222101]],
Unit["degree", 0.017453292519943295]],
Conversion["Japan Plane Rectangular CS zone VIII",
Method["Transverse Mercator"],
Parameter["Latitude of natural origin", 36.0],
Parameter["Longitude of natural origin", 138.5],
Parameter["Scale factor at natural origin", 0.9999],
Parameter["False easting", 0.0],
Parameter["False northing", 0.0]],
CS[Cartesian, 2],
Axis["Northing (X)", north],
Axis["Easting (Y)", east],
Unit["metre", 1],
Usage[
Scope["Cadastre, engineering survey, topographic mapping (large and medium scale)."],
Area["Japan - onshore - Honshu between approximately 137°45'E and 139°E - Niigata-ken; Nagano-ken; Yamanashi-ken; Shizuoka-ken."],
BBox[34.54, 137.32, 38.58, 139.91]],
Id["EPSG", 6676, "12.047", URI["urn:ogc:def:crs:EPSG:12.047:6676"]],
Remark["Replaces JGD2000 / Japan Plane Rectangular CS VIII (CRS code 2450) with effect from 21st October 2011."]]
(退出码 0)
安装完成后数据库落位并占用约 25 MB:
ls /opt/sis/apache-sis-1.6/data/
du -sh /opt/sis/apache-sis-1.6/data/Databases/SpatialMetadata
实测回显:
Databases README
25M /opt/sis/apache-sis-1.6/data/Databases/SpatialMetadata
再次查询 EPSG:4326,定义切换为完整 EPSG 库(Ensemble、Scope 齐全,Id 版本为 12.047,不再带 Citation["Subset of EPSG"]):
GeographicCRS["WGS 84",
Ensemble["World Geodetic System 1984 ensemble",
Member["World Geodetic System 1984 (Transit)"],
Member["World Geodetic System 1984 (G730)"],
Member["World Geodetic System 1984 (G873)"],
Member["World Geodetic System 1984 (G1150)"],
Member["World Geodetic System 1984 (G1674)"],
Member["World Geodetic System 1984 (G1762)"],
Member["World Geodetic System 1984 (G2139)"],
Member["World Geodetic System 1984 (G2296)"],
Ellipsoid["WGS 84", 6378137.0, 298.257223563],
EnsembleAccuracy[2.0]],
CS[ellipsoidal, 2],
Axis["Latitude (B)", north],
Axis["Longitude (L)", east],
Unit["degree", 0.017453292519943295],
Usage[
Scope["Horizontal component of 3D system."],
Area["World"],
BBox[-90.00, -180.00, 90.00, 180.00]],
Id["EPSG", 4326, "12.047", URI["urn:ogc:def:crs:EPSG:12.047:4326"]]]
(退出码 0)
⚠️ 注意:EPSG 下载确认提示要求交互式终端(TTY)。在管道/无人值守脚本中执行时不会出现提示,命令直接以上述「退出码 199」报错结束。无人值守场景请改用 Maven 依赖
org.apache.sis.non-free:sis-embedded-data(见《Apache SIS 配置参数详解》)。
五、方案 B:源码构建安装(可选)
Apache SIS 源码以 Gradle 工程发布,适合需要改代码或自建 Maven 本地仓库的场景:
wget -q https://dlcdn.apache.org/sis/1.6/apache-sis-1.6-src.zip
unzip -q apache-sis-1.6-src.zip
cd apache-sis-1.6
gradle assemble # 构建 JAR,产物在 endorsed/build/libs/
gradle publishToMavenLocal # 如需在本机 Maven 工程中使用
⚠️ 前置说明:构建需要 Java 22+(Ubuntu 22.04 官方源无 openjdk-22,需自装),构建产物可在 Java 11+ 运行。本文主测方案 A,方案 B 命令来自官方下载页指引,未在本环境完整执行。
六、多方案对比与选择建议
| 维度 | 方案 A:官方二进制包 | 方案 B:源码构建 |
|---|---|---|
| 版本 | 1.6 预编译 | 1.6 源码自建 |
| 是否需联网 | 下载 zip(12 MB),EPSG 库约 24 MB 按需下载 | Gradle 拉取依赖,量大 |
| Java 要求 | 运行 Java 11+(GDAL 模块 22+) | 构建 Java 22+,产物 Java 11+ |
| 附带命令行工具 | 有(bin/sis) | 需自行定位产物 jar |
| 适用场景 | 服务器部署、快速上手、命令行体验 | 二次开发、定制构建 |
选择建议:仅在服务器上使用命令行工具或嵌入 Java 应用,选方案 A;需要修改 SIS 源码或把非发布版本装入本地 Maven 仓库,选方案 B。
七、配置说明
SIS 的配置入口有三处(均已在实测环境核实):
-
环境变量
SIS_DATA:数据目录(EPSG 数据库、基准变化文件等)。bin/sis启动脚本默认将其指向安装目录下data;data/README原文说明可自定义:This directory is the default location of Apache SIS data. If desired, an alternative location can be defined with the SIS_DATA environment variable. Example: export SIS_DATA=/my/data/directory -
环境变量
SIS_OPTS:注入到每次sis调用的选项,官方推荐设置 UTF-8 输出编码:export SIS_OPTS="--encoding UTF-8" -
日志配置
conf/logging.properties:JUL(java.util.logging)配置文件,控制日志级别与格式,实测文件内容(去注释):handlers = java.util.logging.FileHandler, \ java.util.logging.ConsoleHandler .level = CONFIG org.apache.sis.level = FINE java.util.logging.FileHandler.level = FINE java.util.logging.ConsoleHandler.level = INFO java.util.logging.FileHandler.pattern = %p/log/sis.log java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.ConsoleHandler.formatter = org.apache.sis.util.logging.MonolineFormatter org.apache.sis.util.logging.MonolineFormatter.source = class:short
命令行全局选项与 Java 应用侧配置详见《Apache SIS 配置参数详解》。
八、注意事项
⚠️ 注意:
- SIS 1.6 核心要求 Java 11+;
lib/org.apache.sis.storage.gdal.jar需 Java 22,JDK 17/21 环境按 4.3 节移出即可。sis --version不是合法选项,版本信息用sis about。- EPSG 数据集许可与 Apache 2.0 不兼容,因此不随发行包附带;安装它需要交互确认两次条款( Yes/No )。
- 图形应用
bin/sisfx需要 Java 22+ 与 JavaFX 24+,服务器环境无需安装。
九、常见问题
Q1:sis 命令报 tput: No value for $TERM and no -T specified 并退出?
非交互环境缺少 TERM 变量,bin/sis 里的 tput cols 失败且脚本启用了 set -o errexit。先 export TERM=xterm-256color 再执行;SSH 登录会话一般自带 TERM,不受影响。
Q2:首次运行报 Unsupported major.minor version 66.0?
lib/org.apache.sis.storage.gdal.jar 按 Java 22 编译(class 66.0),JDK 17 及以下无法读取。GDAL 为可选模块,按 4.3 节移出 lib/;或改装 Java 22+。
Q3:查询 CRS 报 only a subset of the EPSG geodetic dataset has been queried?
内置的是 EPSG 子集。交互终端下执行同一命令按提示输入两次 Yes 安装完整库;无人值守场景改用 Maven 依赖 sis-embedded-data。
Q4:sis crs EPSG:6676 在脚本里没有出现下载提示?
下载确认必须读到交互式终端输入;管道喂 Yes 或无 TTY 时不弹提示、直接报错退出码 199。先在终端人工完成一次安装,之后同一数据目录内脚本可直接使用。
Q5:日志行里的 ? 是乱码吗?
不是内容损坏。--encoding UTF-8 作用于命令输出(WKT、元数据表格);INFO/WARNING 等日志经 java.util.logging 通道输出,默认编码仍为 US-ASCII,因此日志中的中文引号、缩进等字符显示为问号,不影响数据正确性。
十、卸载方式
删除安装目录与环境变量文件即可(含 EPSG 数据库):
rm -rf /opt/sis
rm -f /etc/profile.d/sis.sh
若同时移除 JDK 与下载缓存:
sudo apt-get remove -y openjdk-17-jdk
sudo apt-get autoremove -y
rm -rf /tmp/sis-dl
十一、参考链接
- Apache SIS 官网:
https://sis.apache.org/ - 官方下载页:
https://sis.apache.org/downloads.html - 发行目录:
https://dlcdn.apache.org/sis/;历史版本:https://archive.apache.org/dist/sis/ - 命令行工具文档:
https://sis.apache.org/command-line.html - EPSG 数据集使用说明:
https://sis.apache.org/epsg.html