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

Ubuntu系统中通过Snapcraft安装配置OpenJDK及解决CLI无法直接调用java/javac命令的问题咨询

Ubuntu系统中通过Snapcraft安装配置OpenJDK及解决CLI无法直接调用java/javac命令的问题咨询

嘿,我来给你捋捋这个问题的前因后果和解决办法~

从你贴的终端输出能看出来,你已经通过Snap成功装好了OpenJDK 20.0.1版本,而且用Snap专属的openjdk.java、openjdk.javac命令是能正常运行的,但直接敲java或javac时系统就提示找不到命令。这是因为Snap安装的应用默认会用<软件包名>.<命令>的格式命名可执行文件,目的是避免和系统apt装的同名称命令冲突,所以这些命令不会自动映射到系统默认的java/javac别名上。

下面给你两种简单的解决方法,任选其一就行:

方法一:创建软链接到系统可执行目录

这种方法相当于给Snap的命令创建一个“快捷方式”,让系统能直接识别java/javac:

  • 先确认Snap的OpenJDK命令路径:Snap的可执行文件一般都在/snap/bin/目录下,你可以用ls /snap/bin/openjdk.*查看,能看到openjdk.java和openjdk.javac
  • 然后创建软链接到/usr/local/bin(这个目录默认在系统PATH里,不会干扰系统自带的包):
    sudo ln -s /snap/bin/openjdk.java /usr/local/bin/java
    sudo ln -s /snap/bin/openjdk.javac /usr/local/bin/javac
    
  • 配置完直接在终端输入java --version和javac --version,就能看到和openjdk.java -version一样的输出了。

方法二:给命令添加别名到shell配置文件

如果你不想修改系统目录,可以通过给shell加别名的方式解决:

  • 打开你的shell配置文件(用bash的话是~/.bashrc,zsh的话是~/.zshrc):
    nano ~/.bashrc
    
  • 在文件末尾加两行别名配置:
    alias java='openjdk.java'
    alias javac='openjdk.javac'
    
  • 保存退出后,刷新配置让修改生效:
    source ~/.bashrc
    
  • 之后新开终端或者刷新配置后,直接敲java/javac就能调用Snap装的OpenJDK了。

另外补充下,如果你后续要切换不同版本的OpenJDK,Snap的这种命名方式其实更灵活,你可以通过不同的别名或软链接来切换;如果是长期用一个版本,上面两种方法都能完美解决CLI直接调用的问题。

备注:内容来源于stack exchange,提问作者Nicholas Saunders

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 09:54:40