You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下如何更新Flyway专属Java版本?

解决Flyway在Ubuntu中使用指定Java版本的问题

你已经搞定了系统默认Java的更新,但Flyway因为自带了独立JRE,所以没自动用上新的版本。别担心,咱们一步步来调整:

方法1:替换Flyway自带的JRE(最直接)

Flyway默认会优先调用自身目录下的jre文件夹里的Java环境,所以咱们直接把这个目录替换成系统里的新Java即可:

  1. 先确认系统里的目标Java版本正常运行:
    java -version
    
    确保输出是你想要的Oracle Java 8版本。
  2. 备份Flyway原来的JRE(以防后续需要恢复):
    sudo mv /opt/flyway/jre /opt/flyway/jre_backup
    
  3. 找到系统Java的安装路径,Oracle Java 8通过apt安装后,路径通常是/usr/lib/jvm/java-8-oracle,你也可以用下面的命令确认:
    update-alternatives --list java
    
    输出结果就是系统Java的实际位置。
  4. 给Flyway创建指向系统Java的软链接:
    sudo ln -s /usr/lib/jvm/java-8-oracle /opt/flyway/jre
    
  5. 验证Flyway是否用上了新Java:
    flyway -version
    
    查看输出里的Java version:字段,应该就是你刚安装的Oracle Java 8了。

方法2:修改Flyway启动脚本(更灵活)

如果不想替换自带JRE,咱们可以直接修改启动脚本,强制Flyway调用系统的Java:

  1. 打开Flyway的启动脚本,一般位于/opt/flyway目录下:
    sudo nano /opt/flyway/flyway
    
  2. 在脚本中找到类似这样的行:
    JRE_HOME="$DIR/jre"
    
  3. 把它替换成系统Java的路径,比如:
    JRE_HOME="/usr/lib/jvm/java-8-oracle"
    
  4. 按Ctrl+O保存修改,Ctrl+X退出编辑器。
  5. 同样用flyway -version验证版本是否正确。

为什么你之前的update-alternatives命令没生效?

你之前执行的update-alternatives --install /usr/bin/java java /opt/flyway/jre/bin/java 1优先级设置太低(仅为1),而系统默认Java的优先级通常更高,所以Flyway还是会优先使用自带的JRE。如果想用这个方法,需要把系统Java的优先级设高,比如:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-oracle/bin/java 100

然后执行update-alternatives --config java,选择对应编号的Oracle Java 8即可。不过还是前面两种方法更直接针对Flyway的问题。

内容的提问来源于stack exchange,提问作者Vikas Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:38:09