Ubuntu 22.04 安装 Apache Groovy 指南

面向 Ubuntu 22.04 服务器,讲解 Apache Groovy 4.0.24 安装:openjdk 8/11/17 部署、SDKMAN 与 apt 及二进制 zip 三种方式、版本验证、多 JDK 切换与卸载流程。

Apache GroovyApache Groovy安装部署JavaApacheUbuntu 22.042026/10/12

Ubuntu 22.04 安装 Apache Groovy 指南

Apache Groovy 是构建于 JVM 之上的动态语言,可用于脚本编写、构建工具(Gradle)与 Java 工程内嵌。本文在一台 Ubuntu 22.04 服务器上完成 Groovy 4.0.24 的部署,命令与回显均来自真实执行。

一、前置条件

1.1 系统与权限

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64)。
  • 账号权限:具备 root 或 sudo 权限(示例统一使用 root / q1w2e3r4)。
  • 网络:可访问 Ubuntu 软件源与 Apache 归档站点。
# cat /etc/os-release | head -2
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"

1.2 依赖软件

# apt-get update -qq
# apt-get install -y unzip zip curl

二、安装 JDK

2.1 安装 JDK 11(推荐基线)

# apt-get install -y openjdk-11-jdk

2.2 安装 JDK 8 与 JDK 17(可选,便于多版本切换)

# apt-get install -y openjdk-8-jdk openjdk-17-jdk
# ls /usr/lib/jvm/
java-1.8.0-openjdk-amd64  java-11-openjdk-amd64  java-17-openjdk-amd64

2.3 验证 Java

# java -version
openjdk version "11.0.32.1" 2026-08-18
OpenJDK Runtime Environment (build 11.0.32.1+1-post-1ubuntu1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 11.0.32.1+1-post-1ubuntu1-22.04-Ubuntu, mixed mode, sharing)

三、安装 Groovy

3.1 方式一:官方二进制 zip(推荐)

# curl -sSL -o /tmp/groovy.zip \
    https://archive.apache.org/dist/groovy/4.0.24/distribution/apache-groovy-binary-4.0.24.zip
# ls -l /tmp/groovy.zip
-rw-r--r-- 1 root root 29984474 /tmp/groovy.zip
# unzip -q /tmp/groovy.zip -d /opt && mv /opt/groovy-4.0.24 /opt/groovy
# ls /opt/groovy/bin | head
grape  grape.bat  groovy  groovy.bat  groovyConsole  groovyConsole.bat
groovyConsole_completion  groovy_completion  groovyc  groovyc.bat

配置环境变量:

# cat > /etc/profile.d/groovy.sh <<'EOF'
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export GROOVY_HOME=/opt/groovy
export PATH=$GROOVY_HOME/bin:$JAVA_HOME/bin:$PATH
EOF
# source /etc/profile.d/groovy.sh

3.2 方式二:SDKMAN 安装

# curl -s "https://get.sdkman.io" | bash
# source "$HOME/.sdkman/bin/sdkman-init.sh"
# sdk install groovy 4.0.24

3.3 方式三:apt 仓库安装

Ubuntu 22.04 的 universe 源收录了 groovy,但版本较旧:

# apt-cache policy groovy
groovy:
  Installed: (none)
  Candidate: 2.4.21-1

# apt-get install -y groovy

说明:实测 Ubuntu 22.04 官方源 groovy 版本为 2.4.21,不满足 4.x 语法与性能需求时,请使用方式一或方式二。

四、版本验证

# groovy --version
Groovy Version: 4.0.24 JVM: 11.0.32.1 Vendor: Ubuntu OS: Linux

# groovysh --version
@|green Groovy Shell|@ 4.0.24

# groovyc --version
Groovy compiler version 4.0.24
Copyright 2003-2023 The Apache Software Foundation. https://groovy-lang.org/

4.1 多 JDK 切换验证

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64  -> Groovy Version: 4.0.24 JVM: 1.8.0_504
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 -> Groovy Version: 4.0.24 JVM: 11.0.32.1
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 -> Groovy Version: 4.0.24 JVM: 17.0.20.1

五、最小脚本运行

5.1 内联执行

# groovy -e 'println "hello"; println([1,2,3].collect{it*2})'
hello
[2, 4, 6]

5.2 脚本文件执行

创建 /root/demo.groovy:

def nums = [1, 2, 3, 4, 5]
println "Hello, Groovy ${GroovySystem.version}"
println "doubled = ${nums.collect { it * 2 }}"
println "total   = ${nums.sum()}"

运行:

# groovy /root/demo.groovy
Hello, Groovy 4.0.24
doubled = [2, 4, 6, 8, 10]
total   = 15

5.3 交互式 Shell 运行

# mkdir -p /opt/groovy-work && cd /opt/groovy-work
# printf "2+3*4\n:exit\n" | groovysh
Groovy Shell (4.0.24, JVM: 11.0.32.1)
groovy:000> 2+3*4
===> 14
groovy:000> :exit

5.4 编译后运行

# groovyc -d /root/classes /root/Hello.groovy
# java -cp /root/classes:/opt/groovy/lib/groovy-4.0.24.jar Hello Apache
Hello, Apache from compiled Groovy!

六、卸载

6.1 卸载二进制 zip 安装

# rm -rf /opt/groovy /root/.groovy
# rm -f /etc/profile.d/groovy.sh
# source /etc/profile

6.2 卸载 SDKMAN 安装

# sdk uninstall groovy 4.0.24

6.3 卸载 apt 安装与 JDK

# apt-get remove -y groovy
# apt-get remove -y openjdk-11-jdk
# apt-get autoremove -y

6.4 验证卸载

# groovy --version
bash: groovy: command not found

七、常见问题

Q1:export 后新开终端又失效?

请将环境变量写入 /etc/profile.d/groovy.sh,而不是只在当前会话临时 export。

Q2:groovysh 启动后长时间无输出?

避免在根目录 / 下启动 groovysh,它会对类路径当前目录递归扫描包名。请切换到业务目录后再启动:

# mkdir -p /opt/groovy-work && cd /opt/groovy-work && groovysh

Q3:@Grab 拉取依赖失败?

检查服务器能否访问 Maven Central;内网环境请配置 Gradle/Ivy 私有仓库镜像或预置 ~/.groovy/grapes 缓存。