java - Flutter/Dart 找不到 java 和 $JAVA_HOME

标签 java android-studio flutter dart intellij-idea

我正在关注 official tutorial on flutter.dev但是在 IntelliJ IDEA 中单击“运行”时出现以下错误:

Launching lib/main.dart on sdk gphone x86 arm in debug mode...
Running Gradle task 'assembleDebug'...

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Exception: Gradle task assembleDebug failed with exit code 1

如果我运行 flutter doctor -v,您可以看到它已安装:

$ flutter doctor -v
[✓] Flutter (Channel stable, 1.22.1, on Linux, locale en_US.UTF-8)
    • Flutter version 1.22.1 at /home/forest/snap/flutter/common/flutter
    • Framework revision f30b7f4db9 (11 days ago), 2020-10-08 10:06:30 -0700
    • Engine revision 75bef9f6c8
    • Dart version 2.10.1

 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /home/forest/Android/Sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /home/forest/Android/Sdk
    • Java binary at: /home/forest/.jdks/jdk1.8.0_261/bin/java
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
    • All Android licenses accepted.

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

(虽然我已经从 IDEA 工具箱安装了 android studio。)

我可以从 shell 运行这两个命令:

forest@forest-PC:~$ echo $JAVA_HOME
/home/forest/.jdks/jdk1.8.0_261
forest@forest-PC:~$ java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
forest@forest-PC:~$ 

它也在配置文件中:

$ cat /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

export JAVA_HOME="/home/forest/.jdks/jdk1.8.0_261"
export PATH=$JAVA_HOME/bin:$PATH

在 IntelliJ IDEA 中,它还设置了: enter image description here enter image description here

对于 Android Studio,存在完全相同的问题。

IntelliJ 控制台 env 也设置了 $JAVA_HOME。

forest@forest-PC:~/projects/fluttertanulas/myapp$ echo $JAVA_HOME
/home/forest/.jdks/jdk1.8.0_261
forest@forest-PC:~/projects/fluttertanulas/myapp$ echo $PATH
/home/forest/.jdks/jdk1.8.0_261/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/forest/Android/Sdk/tools:/home/forest/Android/Sdk/platform-tools
forest@forest-PC:~/projects/fluttertanulas/myapp$ 
forest@forest-PC:~/projects/fluttertanulas/myapp$ java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

最佳答案

因为我刚刚安装了所有东西,从 javaandroidflutterdart 等等,我只是设置我的 .bashrc/etc/profile,我只需要在系统上重新启动即可使其正常工作。可能与 IDEA 如何获取 env 变量有关。

关于java - Flutter/Dart 找不到 java 和 $JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64424071/

相关文章:

java - 如何使用 GWT 2.4 在服务器端动态创建 UI

android - 无法为 com.android.build.gradle.internal.api.ApplicationVariantImpl 类型的对象设置未知属性 'outputFileName'

android - 切换分支不更新android studio

flutter - 无法更改下拉按钮值 Flutter

flutter - Flutter在GridView下方添加容器

java - 如何在android中获取动态创建的EditText的值?

java - 将变量从 valuechanged 方法转移到 actionperformed

java - 如果使用 hibernate 条件传递所有主题,如何获取用户?

android - 在 Android Studio 中控制 ListView 预览项目数

firebase - flutter Riverpod : Problems fetching data from Firebase using Riverpod