运行Apache Drill需要Java 1.7或更高版本

yak*_*out 4 apache-drill

当我输入

$ drillbit.sh start

它告诉我这个错误:

ERROR: Java 1.7 or later is required to run Apache Drill.
Run Code Online (Sandbox Code Playgroud)

虽然我有最新版本的java

$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我的$ JAVA_HOME也在.profile中正确设置

什么可能导致这样的问题?

yak*_*out 8

好吧,经过一点点投资后,我发现配置文件drill-config.sh检查带有错误正则表达式的java版本:

"$JAVA" -version 2>&1 | grep "version" | egrep -e "1.4|1.5|1.6" > /dev/null
if [ $? -eq 0 ]; then
   fatal_error "Java 1.7 or later is required to run Apache Drill."
fi
Run Code Online (Sandbox Code Playgroud)

正则表达式"1.4"匹配144,这是我在java版本中的更新号.所以浮点应该被转义为"1\.4"

这最终解决了我的问题.