目录
一. 问题
最近在WSL 中安装gradle 过程中,遇到如下问题:
即,
/home/linuxbrew/.linuxbrew/Cellar/gradle/6.6.1/libexec/bin/gradle: 185: exec: /home/linuxbrew/.linuxbrew/opt/openjdk/libexec/bin/java: Exec format error
找了好久,安装的默认openjdk,配置JAVA_HOME 细节请参考【Ubuntu】安装Java 环境和配置环境变量
配置信息如下:
二. 安装 gradle
安装过程如下所示:
我们注意到如下信息:
xxx@DESKTOP-XXX:~$ brew install gradle
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
infracost libirecovery prometheus-cpp vtk@8.2
==> Updated Formulae
Updated 322 formulae.
==> Downloading https://linuxbrew.bintray.com/bottles/openjdk-14.0.1.x86_64_linux.bottle.tar.gz
==> Downloading https://services.gradle.org/distributions/gradle-6.6.1-all.zip
==> Installing dependencies for gradle: openjdk
==> Installing gradle dependency: openjdk
==> Pouring openjdk-14.0.1.x86_64_linux.bottle.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /home/linuxbrew/.linuxbrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
openjdk is keg-only, which means it was not symlinked into /home/linuxbrew/.linuxbrew,
because it shadows the macOS `java` wrapper.
If you need to have openjdk first in your PATH run:
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/openjdk/bin:$PATH"' >> ~/.profile
For compilers to find openjdk you may need to set:
export CPPFLAGS="-I/home/linuxbrew/.linuxbrew/opt/openjdk/include"
==> Summary
🍺 /home/linuxbrew/.linuxbrew/Cellar/openjdk/14.0.1: 627 files, 335.6MB
==> Installing gradle
🍺 /home/linuxbrew/.linuxbrew/Cellar/gradle/6.6.1: 10,630 files, 249.7MB, built in 1 minute 27 seconds
==> Caveats
==> openjdk
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /home/linuxbrew/.linuxbrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
openjdk is keg-only, which means it was not symlinked into /home/linuxbrew/.linuxbrew,
because it shadows the macOS `java` wrapper.
If you need to have openjdk first in your PATH run:
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/openjdk/bin:$PATH"' >> ~/.profile
For compilers to find openjdk you may need to set:
export CPPFLAGS="-I/home/linuxbrew/.linuxbrew/opt/openjdk/include"
看上面信息得出如下配置:
配置一:
# 在(/Library/Java/JavaVirtualMachines/)目录下,创建一个软连接
sudo ln -sfn /home/linuxbrew/.linuxbrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
# ln 命令
usage: ln [-Ffhinsv] source_file [target_file]
ln [-Ffhinsv] source_file ... target_dir
link source_file target_file
-s 软链接(符号链接)
-f 强制执行
-n 把符号链接视为一般目录
配置二:
# 在.profile 文件末尾添加如下信息
export PATH="/home/linuxbrew/.linuxbrew/opt/openjdk/bin:$PATH"
export CPPFLAGS="-I/home/linuxbrew/.linuxbrew/opt/openjdk/include"
然后,执行如下命令:
source .profile
使得上述配置信息生效;
其实安装上述配置的时候,在WSL 中执行gradle 还是无效的;</