From bbdea33a4eb82654b66d939b51391e5bf7739512 Mon Sep 17 00:00:00 2001 From: Sakthi Date: Wed, 17 Apr 2019 13:17:59 -0700 Subject: [PATCH] HBASE-22264: Rest Server (master branch) on jdk 11 throws NoClassDefFoundError : javax/annotation/Priority --- bin/hbase | 12 ++++++++++++ .../src/main/assembly/hadoop-two-compat.xml | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/bin/hbase b/bin/hbase index 1af2213001e4f85d93ee8f46cf460c78b3179121..e3a7cd2db7ce44f1ade0a7406bdb3db7135699c8 100755 --- a/bin/hbase +++ b/bin/hbase @@ -649,6 +649,18 @@ else CLASS=$COMMAND fi +# Add lib/jdk11 jars to the classpath + +JAVA=$JAVA_HOME/bin/java +version=$(JAVA -version 2>&1 | awk -F '"' '/version/ {print $2}') +if [[ "$version" > "11" ]]; then + for f in ${HBASE_HOME}/lib/jdk11/*; do + if [ -f "${f}" ]; then + CLASSPATH="${CLASSPATH}:${f}" + fi + done +fi + # Have JVM dump heap if we run out of memory. Files will be 'launch directory' # and are named like the following: java_pid21612.hprof. Apparently it doesn't # 'cost' to have this flag enabled. Its a 1.6 flag only. See: diff --git a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml index 9aada987189d11cddf0abf90c7ac682e9cf5fed2..99252dee8e2ff68b4c0e865cd11d562c727ac406 100644 --- a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml +++ b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml @@ -68,6 +68,7 @@ javax.annotation:javax.annotation-api + com.sun.activation:javax.activation com.sun.xml.ws:jaxws-ri org.jruby:jruby-complete @@ -191,6 +192,13 @@ jline:jline + + lib/jdk11 + + com.sun.activation:javax.activation + javax.annotation:javax.annotation-api + + -- 2.20.1 (Apple Git-117)