找不到正確的java_home路徑報錯解決
問題由來
在使用homebrew安裝jadx后無法正常啟動,報錯如下:
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.
看報錯的字面意思表示找不到jdk的路徑,但是查看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)并沒有什么問題,那么是什么導致jadx找不到正確的路徑呢?
問題排查
首先查看jadx的安裝位置,由于是通過homebrew安裝,通過如下命令可以查看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)
進入bin目錄后vim查看一下jadx文件:
~ % vim jadx #!/bin/bash JAVA_HOME="${JAVA_HOME:-@@HOMEBREW_JAVA@@}" exec "/opt/homebrew/Cellar/jadx/1.4.7/libexec/bin/jadx"??"$@"
可以看到啟動命令中的JAVA_HOME變成了-@@HOMEBREW_JAVA@@,正好對應上了上面的報錯。
解決方案
第一種:暴力解決法
最快的方式就是直接修改啟動命令,由于是只讀文件,先修改權限:
bin % sudo chmod 777 jadx
然后拿到上文中找到的正確的java_home的值替換-@@HOMEBREW_JAVA@@,替換后的啟動命令如下:
#!/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。
第二種:正常解決法
想要正常的解決得先知道這個錯誤發(fā)生的原理,我們國內(nèi)的用戶使用homebrew時一般都是配置了國內(nèi)的鏡像源來提速的,而問題就出在國內(nèi)的鏡像源上了,從國內(nèi)鏡像安裝依賴于 Java 的某些配置目前無法正常工作,正常來說@@HOMEBREW_JAVA@@是會被替換掉的,但是因為使用了國內(nè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上對于此問題的相關討論:討論鏈接
到此這篇關于找不到正確的java_home路徑報錯解決的文章就介紹到這了,更多相關java_home路徑報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
spring?boot集成WebSocket日志實時輸出到web頁面
這篇文章主要為大家介紹了spring?boot集成WebSocket日志實時輸出到web頁面展示的詳細操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題
這篇文章主要介紹了如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12