找不到正確的java_home路徑報(bào)錯(cuò)解決
問(wèn)題由來(lái)
在使用homebrew安裝jadx后無(wú)法正常啟動(dòng),報(bào)錯(cuò)如下:
example % jadx Original\$\$EnhancerByCGLIB\$\$818cf910.class
ERROR: JAVA_HOME is set to an invalid directory: @@HOMEBREW_JAVA@@
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
看報(bào)錯(cuò)的字面意思表示找不到j(luò)dk的路徑,但是查看java版本以及路徑配置:
~ % java -version openjdk version "17.0.1" 2021-10-19 OpenJDK Runtime Environment (build 17.0.1+12-39) OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing) ~ % vim ~/.bash_profile ... export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home ...
發(fā)現(xiàn)并沒(méi)有什么問(wèn)題,那么是什么導(dǎo)致jadx找不到正確的路徑呢?
問(wèn)題排查
首先查看jadx的安裝位置,由于是通過(guò)homebrew安裝,通過(guò)如下命令可以查看jadx的安裝路徑:
~ % brew list jadx????????????????????????? /opt/homebrew/Cellar/jadx/1.4.7/bin/jadx /opt/homebrew/Cellar/jadx/1.4.7/bin/jadx-gui /opt/homebrew/Cellar/jadx/1.4.7/libexec/bin/ (4 files) /opt/homebrew/Cellar/jadx/1.4.7/libexec/lib/ (51 files)
進(jìn)入bin目錄后vim查看一下jadx文件:
~ % vim jadx
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-@@HOMEBREW_JAVA@@}" exec "/opt/homebrew/Cellar/jadx/1.4.7/libexec/bin/jadx"??"$@"可以看到啟動(dòng)命令中的JAVA_HOME變成了-@@HOMEBREW_JAVA@@,正好對(duì)應(yīng)上了上面的報(bào)錯(cuò)。
解決方案
第一種:暴力解決法
最快的方式就是直接修改啟動(dòng)命令,由于是只讀文件,先修改權(quán)限:
bin % sudo chmod 777 jadx
然后拿到上文中找到的正確的java_home的值替換-@@HOMEBREW_JAVA@@,替換后的啟動(dòng)命令如下:
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home}" exec "/opt/homebrew/Cellar/jadx/1.4.7/libexec/bin/jadx"??"$@"替換后即可正常使用jadx。
第二種:正常解決法
想要正常的解決得先知道這個(gè)錯(cuò)誤發(fā)生的原理,我們國(guó)內(nèi)的用戶使用homebrew時(shí)一般都是配置了國(guó)內(nèi)的鏡像源來(lái)提速的,而問(wèn)題就出在國(guó)內(nèi)的鏡像源上了,從國(guó)內(nèi)鏡像安裝依賴(lài)于 Java 的某些配置目前無(wú)法正常工作,正常來(lái)說(shuō)@@HOMEBREW_JAVA@@是會(huì)被替換掉的,但是因?yàn)槭褂昧藝?guó)內(nèi)的鏡像源導(dǎo)致沒(méi)有正常的被替換。而brew需要清單才能正確替換@@HOMEBREW_JAVA@@,但brew只知道如何從ghcr.io 獲取清單。
查看 HOMEBREW_BOTTLE_DOMAIN 如下:
bin % echo $HOMEBREW_BOTTLE_DOMAIN??????????????? https://mirrors.ustc.edu.cn/homebrew-bottles/bottles
想要正確安裝只需要使用如下命令即可:
~ % HOMEBREW_BOTTLE_DOMAIN= brew reinstall kafka
最后附上github上對(duì)于此問(wèn)題的相關(guān)討論:討論鏈接
到此這篇關(guān)于找不到正確的java_home路徑報(bào)錯(cuò)解決的文章就介紹到這了,更多相關(guān)java_home路徑報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信開(kāi)發(fā)準(zhǔn)備第一步 Maven倉(cāng)庫(kù)管理新建WEB項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了微信開(kāi)發(fā)準(zhǔn)備第一步,Maven倉(cāng)庫(kù)管理新建WEB項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
kkfileview Word文件預(yù)覽亂碼異常問(wèn)題及解決
解決CentOS服務(wù)器kkfileview預(yù)覽亂碼問(wèn)題,需下載中文字體包,上傳解壓至/usr/share/fonts目錄,設(shè)置字體權(quán)限后重啟kkfile及office服務(wù),其他字體可同理操作2025-08-08
SpringBoot注冊(cè)第三方Bean的方法總結(jié)
眾所周知,SpringBoot默認(rèn)會(huì)掃描啟動(dòng)類(lèi)所在的包及其子包,一般我們都是在需要的類(lèi)上通過(guò)注解的方式去將Bean注冊(cè)交給IOC進(jìn)行管理,但是注冊(cè)第三方Bean的方案卻不支持,所以本文給大家介紹了SpringBoot注冊(cè)第三方Bean的方法,需要的朋友可以參考下2024-01-01
java 將數(shù)據(jù)加載到內(nèi)存中的操作
這篇文章主要介紹了java 將數(shù)據(jù)加載到內(nèi)存中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
springboot集成RocketMQ過(guò)程及使用示例詳解
這篇文章主要為大家介紹了springboot集成RocketMQ過(guò)程及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Java實(shí)現(xiàn)表達(dá)式二叉樹(shù)
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)表達(dá)式二叉樹(shù),感興趣的小伙伴們可以參考一下2016-08-08
Jsoup解析html實(shí)現(xiàn)招聘信息查詢(xún)功能
這篇文章主要為大家詳細(xì)介紹了Jsoup解析html實(shí)現(xiàn)招聘信息查詢(xún)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
spring boot 本地圖片不能加載(圖片路徑)的問(wèn)題及解決方法
這篇文章主要介紹了spring boot 本地圖片不能加載(圖片路徑)的問(wèn)題,解決的辦法其實(shí)很簡(jiǎn)單,只要寫(xiě)一個(gè)配置文件,也就是圖片位置的轉(zhuǎn)化器,原理是虛擬一個(gè)在服務(wù)器上的文件夾,與本地圖片的位置進(jìn)行匹配。需要的朋友可以參考下2018-04-04

