From 3199e5ce2f09739968408596c75d8d87ea6aa7f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20D=C4=85browski?= Date: Tue, 2 Jul 2019 13:09:26 +0200 Subject: [PATCH] Support for JDK 9+. --- CMakeLists.txt | 7 ++++++- bin/create-java-perf-map.sh | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d575706..4715ceb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,12 @@ INCLUDE_DIRECTORIES(${JAVA_INCLUDE_PATH2}) add_library(perfmap SHARED src/c/perf-map-agent.c src/c/perf-map-file.c) -find_package(Java REQUIRED) +find_package(Java COMPONENTS Development) +if (Java_Development_FOUND) + message("Java development tools found.") +else() + message(FATAL_ERROR "Java development tools not found.") +endif() include(UseJava) set(CMAKE_JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH}/../lib/tools.jar) diff --git a/bin/create-java-perf-map.sh b/bin/create-java-perf-map.sh index f5806b6..050a2e9 100755 --- a/bin/create-java-perf-map.sh +++ b/bin/create-java-perf-map.sh @@ -36,11 +36,17 @@ fi [ -d "$JAVA_HOME" ] || (echo "JAVA_HOME directory at '$JAVA_HOME' does not exist." && false) +if [ -f "$JAVA_HOME/lib/tools.jar" ]; then + JAVA_CLASSPATH="-cp $JAVA_HOME/lib/tools.jar" +else + JAVA_CLASSPATH="--add-modules jdk.attach" +fi + if [[ "$LINUX" == "1" ]]; then sudo rm $PERF_MAP_FILE -f - (cd $PERF_MAP_DIR/out && sudo -u \#$TARGET_UID -g \#$TARGET_GID $JAVA_HOME/bin/java -cp $ATTACH_JAR_PATH:$JAVA_HOME/lib/tools.jar net.virtualvoid.perf.AttachOnce $PID "$OPTIONS") + (cd $PERF_MAP_DIR/out && sudo -u \#$TARGET_UID -g \#$TARGET_GID $JAVA_HOME/bin/java $JAVA_CLASSPATH -jar $ATTACH_JAR_PATH $PID "$OPTIONS") sudo chown root:root $PERF_MAP_FILE else rm -f $PERF_MAP_FILE - (cd $PERF_MAP_DIR/out && $JAVA_HOME/bin/java -cp $ATTACH_JAR_PATH:$JAVA_HOME/lib/tools.jar net.virtualvoid.perf.AttachOnce $PID "$OPTIONS") + (cd $PERF_MAP_DIR/out && $JAVA_HOME/bin/java $JAVA_CLASSPATH -jar $ATTACH_JAR_PATH $PID "$OPTIONS") fi