我日常工作里经常要把odps上的数据拉到桌面上在钉钉上发来发去,因为公司的数据安全政策,odps默认结果一次只能最多复制100行,如果是1000行的数据就要点击10遍,很烦人,不然就要走download审批,也很烦人。于是我忘了从哪里搞来了一个叫odps_clt_release_64 这么个工具,它可以用命令行直接通过内网把需要的数据拉到macos上。
但是我现在换了一个新的苹果,换了m1芯片很高档,当我在odps_clt_release_64路径里执行熟悉的odpscmd
命令时,报错:
1 | The operation couldn’t be completed. Unable to locate a Java Runtime. |
发现系统里面没有java了,于是我就直接跑去https://www.oracle.com/java/technologies/downloads/ 里,下载最新的香喷喷的jdk 22,由于我是M1芯片,所以下载的是ARM64 DMG Installer
,一顿操作安装之后,再执行odpscmd
命令时,换了一个报错:
1 | Error occurred during initialization of boot layer |
google了一下发现,原来 java.xml.bind
在JDK 11及以上的版本里被干掉了。原来python2升级python3后,因为功能调整而无法启动的痛苦在java也有。于是我就只能去下载一个java8,于是来到 https://www.oracle.com/java/technologies/downloads/#java8-mac 里,下载对应的ARM64 DMG Installer
,这里比较恶心,要下载老java必须要注册,于是耐着性子注册了一下,顺利下载并安装。然后这次启动odpscmd
就好了:
然后就是要删除之前下载的jdk-22,删除的方法很简单,在/Library/Java/JavaVirtualMachines/
里找到对应的jdk-22.jdk,然后直接rm -rf
删除就好了。
如果执行java -version
的时候,出现了 java.lang.Error:Properties init:Could not determine current working directory
,那是因为你当前的目录已经不存在了,换一个目录,重新执行java -version
这个命令就行。