centos 8 sdkmanager 更新工具失败

问题描述

我使用最新的命令行工具

sudo curl https://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip -o android-sdk.zip
sudo yum install unzip
sudo unzip android-sdk.zip -d .

尝试更新工具时失败

sudo ./cmdline-tools/bin/sdkmanager "tools"

错误:未设置 JAVA_HOME 并且在其中找不到“java”命令 你的路径。请将环境中的 JAVA_HOME 变量设置为 匹配您的 Java 安装位置。

但是我已经设置了JAVA_HOME和JDK

sudo tee /etc/profile.d/jdk1.8.0.sh <<EOF
export JAVA_HOME=/opt/jdk1.8.0_261
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

并且可以验证 PATH 和 JAVA_HOME

# echo $PATH
/root/.nvm/versions/node/v16.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_261/bin:/root/bin

# echo $JAVA_HOME
/opt/jdk1.8.0_261

有人可以帮忙吗?

解决方法

不能使用sudo,因为 在文件.../cmdline-tools/bin/sdkmanager

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

当我跑步时

sudo which java 
which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)

以下代码没问题

./cmdline-tools/bin/sdkmanager "tools" --sdk_root=/home/android/android_sdk/sdk

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...