温馨提示×

如何在Linux上配置Java虚拟机

小樊
32
2026-01-02 17:41:36
栏目: 云计算

在 Linux 上配置 Java 虚拟机

一 安装 JDK

  • 使用包管理器安装 OpenJDK(推荐)
    • Ubuntu/Debian:
      sudo apt update
      sudo apt install openjdk-17-jdk    # 或 openjdk-11-jdk、openjdk-8-jdk
      
    • CentOS/RHEL/Fedora:
      sudo dnf install java-17-openjdk-devel   # 或 java-11-openjdk-devel
      # 老版本 yum:sudo yum install java-11-openjdk-devel
      
  • 手动安装 Oracle JDK 或特定版本
    • 下载 .tar.gz 包并解压到 /opt
      sudo tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /opt/
      
  • 验证安装:
    java -version
    javac -version
    

上述步骤覆盖了常见的安装方式,包管理器安装更省心,手动安装更灵活。

二 配置环境变量

  • 查找安装路径
    ls /usr/lib/jvm/                  # 常见 OpenJDK 目录
    readlink -f "$(which java)"       # 追踪 java 实际路径,便于确定 JAVA_HOME
    
  • 设置环境变量(写入当前用户或全局)
    • 当前用户生效(推荐):编辑 ~/.bashrc
      echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
      echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
      source ~/.bashrc
      
    • 所有用户生效:编辑 /etc/profile/etc/environment
      echo 'JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' | sudo tee -a /etc/profile
      echo 'PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile
      source /etc/profile
      
  • 验证:
    echo $JAVA_HOME
    which java && which javac
    

要点:设置 JAVA_HOME 指向 JDK 根目录,并将 $JAVA_HOME/bin 放在 PATH 前面以确保优先使用。

三 设置 JVM 运行参数

  • 应用内直接传参(最常用、优先级最高)
    java -Xms512m -Xmx2g -XX:+UseG1GC -jar your-app.jar
    
  • 全局环境变量(影响通过脚本或命令行启动的 Java)
    echo 'export JAVA_OPTS="-Xms512m -Xmx2g -XX:+UseG1GC"' >> /etc/profile
    source /etc/profile
    
  • 说明
    • 常见内存参数:-Xms(初始堆)、-Xmx(最大堆)。
    • 常见 GC:-XX:+UseG1GC、并行/CMS 等按应用特性选择。
    • 若使用服务管理工具(如 systemd),应在服务单元中写入 Environment=JAVA_OPTS=…ExecStart=… 的命令行参数,避免仅依赖全局变量。

四 多版本共存与切换

  • 使用 update-alternatives 管理默认 java/javac
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    
  • 为不同项目在各自的启动脚本或 systemd unit 中显式设置 JAVA_HOME 与参数,避免相互影响。

五 验证与常见问题

  • 验证
    java -version
    javac -version
    echo $JAVA_HOME
    java -XshowSettings:properties -version | grep java.home
    
  • 常见问题
    • “java: command not found”:检查 PATH 是否包含 $JAVA_HOME/bin,并确认已执行 source 使配置生效。
    • 版本冲突:用 update-alternatives 或在脚本中显式设置 JAVA_HOME 指定版本。
    • 权限问题:解压/移动 JDK 目录时使用 sudo,或确保当前用户对目标目录有读写权限。

0