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

Java 1.7 or later is required to run Apache Drill

当我输入时

$ drillbit.sh start

它向我显示了这个错误:

ERROR: Java 1.7 or later is required to run Apache Drill.

虽然我有最新版本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)

另外我的 $JAVA_HOME 在 .profile

中设置正确

什么会导致这样的问题?

好吧,经过一番调查,我发现配置文件 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

正则表达式“1.4”匹配 144,这是我拥有的 java 版本中的更新编号。 所以浮点数应该转义为 "1\.4"

这终于解决了我的问题。

已经有一个 Jira 可以解决这个问题: https://issues.apache.org/jira/browse/DRILL-5698 并打开 PR。