没有为命令 java - asdf 设置版本

Posted

技术标签:

【中文标题】没有为命令 java - asdf 设置版本【英文标题】:No version set for command java - asdf 【发布时间】:2022-01-20 22:58:49 【问题描述】:

我现在在 bash 环境中的 Lubuntu 机器上使用 asdf,它给了我信息:

stephane@stephane-pc:~/dev$ cd
No version set for command java
Consider adding one of the following versions in your config file at 
java adoptopenjdk-15.0.2+7

我只有一个 asdf 项目,它位于 ~/work/example/dev/ExampleBooster 目录中:

12:07 $ cat .tool-versions 
java adoptopenjdk-15.0.2+7
nodejs 12.13.1
tflint 0.28.1
terraform-validator 3.1.3
packer 1.7.2
terraform 0.15.3
adr-tools 3.0.0
pre-commit 1.21.0
maven 3.8.4

我的asdf 配置~/dev/commands/asdf.config.sh 文件包含:

#!/bin/bash -x

source $HOME/.asdf/asdf.sh
source $HOME/.asdf/completions/asdf.bash
# Setting the JAVA_HOME variable
. ~/.asdf/plugins/java/set-java-home.bash

# If asdf provides the maven plugin then use the plugin instead of the system maven if any
if asdf current maven > /dev/null 2>&1; then
  export MAVEN_HOME=$(asdf where maven)
  export PATH=$PATH:$MAVEN_HOME/bin
fi

更新:我在 ~/.tool-versions 文件中添加了行 java adoptopenjdk-15.0.2+7 并解决了问题。

【问题讨论】:

你用的是哪个java插件? 我这样做了:asdf plugin-add javaasdf install java adoptopenjdk-15.0.2+7 【参考方案1】:

我在本地尝试过,它按预期工作。

步骤

安装所需工具:

apt-get update -y && apt-get -y  install curl git dirmngr gpg gawk && git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1 && . $HOME/.asdf/asdf.sh

添加java插件

asdf plugin add java https://github.com/halcyon/asdf-java.git

安装它

asdf install java adoptopenjdk-15.0.2+7

配置它

asdf global java adoptopenjdk-15.0.2+7

经过前面的步骤,java就可以使用了,出现在$HOME/.tool-versions

我不需要任何其他配置即可在系统上安装 Java。

码头工人

只是为了尝试或确定您的系统可能配置错误,您可以使用 docker 来拥有一个全新的临时 ubuntu。在这种环境下,您可以从头开始尝试 asdf

docker run -it ubuntu bash

来源

https://asdf-vm.com/guide/getting-started.html#_6-set-a-version https://github.com/halcyon/asdf-java

【讨论】:

这个问题从未出现在我安装了 Java 插件和 Java 语言的项目中。仅当进入我未安装 Java 语言的目录时才会显示。

以上是关于没有为命令 java - asdf 设置版本的主要内容,如果未能解决你的问题,请参考以下文章

JPackage 版本错误(%JAVA_HOME% 设置为正确目录)

如何在 Linux 中修改默认的 Java 版本

在 Mac 上将 Java 版本永久设置为 8

我的java编译环境和运行环境版本 不一致

Java环境变量已设置,在命令提示符中输入Java可以运行,但Javac不能运行

要设置哪些 Java 命令行选项以允许远程调试 JVM?