Apache Drill因Java路径含空格无法启动,如何解决?
解决Apache Drill因Java路径含空格无法启动的问题
你的问题核心是Java安装路径包含空格,Drill的sqlline脚本未对带空格的路径做正确转义,导致路径被截断为/Library/Internet,触发文件找不到的错误。以下是几种可行的解决方法:
方法一:修改Drill的sqlline脚本
- 打开Drill安装目录下的
bin/sqlline文件(路径:/Users/breuds/Desktop/Drill/apache-drill-1.21.1/bin/sqlline) - 定位到错误提示的第95行,找到调用Java的命令段,将Java路径变量用双引号包裹。
例如原本的exec $JAVA ...需修改为exec "$JAVA" ...;如果是通过JAVA_HOME调用,确保写成"$JAVA_HOME/bin/java"
方法二:正确设置带空格的JAVA_HOME环境变量
临时生效(当前终端会话)
执行以下命令后再启动Drill:
export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home" ./bin/drill-embedded
永久生效(针对当前用户)
- 打开终端配置文件(MacOS Sonoma默认是zsh,对应
~/.zshrc) - 添加以下内容:
export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
- 执行
source ~/.zshrc使配置立即生效,之后即可正常运行bin/drill-embedded
方法三:更换无空格路径的Java版本
从官方渠道下载JDK,安装到/Library/Java/JavaVirtualMachines/目录下(该路径无空格),之后将JAVA_HOME指向新的JDK路径即可避免这类问题。
内容的提问来源于stack exchange,提问作者ScottieB
相关产品推荐
相关产品推荐

