ps:记录一下说不定后面还会遇到
最新新换了电脑之后发现在安装 jdk 7u80 的时候安装包会提示
"mac 较新版本的 Java 已安装"
然后安装包就退出了,在网上搜了一下发现了一个脚本,但是一键化太脚本小子了,还是手动自己看一下,而且脚本里还有
rm -rf ~/tmp
可以看到脚本里利用 sed 命令把 false 都替换成了 true 但是我本地这样做好像没用,索性自己来看看
set theDMG to choose file with prompt "Please select javaforosx.dmg:" of type {"dmg"}
do shell script "hdiutil mount " & quoted form of POSIX path of theDMG
do shell script "pkgutil --expand /Volumes/Java\ for\ macOS\ 2017-001/JavaForOSX.pkg ~/tmp"
do shell script "hdiutil unmount /Volumes/Java\ for\ macOS\ 2017-001/"
do shell script "sed -i '' 's/return false/return true/g' ~/tmp/Distribution"
do shell script "pkgutil --flatten ~/tmp ~/Desktop/Java.pkg"
do shell script "rm -rf ~/tmp"
display dialog "Modified Java.pkg saved on desktop" buttons {"Ok"}
所以我跟着这个逻辑自己弄了一波
先解包
pkgutil --expand /Users/kpli0rn/Desktop/Java 7 Update 80.pkg ./test
编辑解包后的 Distribution 文件,可以看到会有一个检测脚本,我们注释掉就行了
然后利用 pkgutil --flatten /Users/kpli0rn/Desktop/test ~/Desktop/java.pkg 命令打包回去就行了
成功安装,不过安装路径有点不一样正常情况下是会在 /Library/Java/JavaVirtualMachines/目录下,但是目标却在 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents 但是问题不大,把 Contents 文件夹整个移动过去就行了
然后在 profile 里编辑一下就行
export JAVA_8u202_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home export JAVA_8u20_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home export JAVA_11u13_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk/Contents/Home export JAVA_7u80_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home export JAVA_HOME=$JAVA_8u202_HOME alias jdk8="export JAVA_HOME=$JAVA_8u202_HOME" alias jdk8u20="export JAVA_HOME=$JAVA_8u20_HOME" alias jdk11u13="export JAVA_HOME=$JAVA_11u13_HOME" alias jdk7u80="export JAVA_HOME=$JAVA_7u80_HOME"



