【Gradle】【WSL】/home/linuxbrew/.linuxbrew/opt/openjdk/libexec/bin/java: Exec format error

本文介绍了在Windows子系统Linux(WSL)环境下安装Gradle时遇到的'Exec format error'问题。通过分析发现是JAVA_HOME指向了brew安装的openjdk,而该版本在WSL中不兼容。解决方案是修改JAVA_HOME,使其指向系统默认的openjdk路径。经过验证,修改后Gradle成功运行。
摘要由CSDN通过智能技术生成

 

目录

一. 问题

二. 安装 gradle

三. 问题追踪

3.1 思路 

3.2 解决

3.3 分析参考

四. 参考


 

一. 问题

最近在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 还是无效的;</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值