diff options
author | Luck <git@lucko.me> | 2025-01-15 21:13:07 +0000 |
---|---|---|
committer | Luck <git@lucko.me> | 2025-01-15 21:13:07 +0000 |
commit | 509aa7ac42023a536bc173bbe3ce75ef600c71c1 (patch) | |
tree | 58d3f05817866efc131eaf7bb7f11f3808788381 | |
parent | 273f9bc8aa6501d7de908f12e26dc68657304704 (diff) | |
download | spark-509aa7ac42023a536bc173bbe3ce75ef600c71c1.tar.gz spark-509aa7ac42023a536bc173bbe3ce75ef600c71c1.tar.bz2 spark-509aa7ac42023a536bc173bbe3ce75ef600c71c1.zip |
Fix standalone attach on Windows (#484)
-rw-r--r-- | spark-standalone-agent/src/main/java/me/lucko/spark/standalone/StandaloneSparkAgent.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/spark-standalone-agent/src/main/java/me/lucko/spark/standalone/StandaloneSparkAgent.java b/spark-standalone-agent/src/main/java/me/lucko/spark/standalone/StandaloneSparkAgent.java index 2820b85..d04c3e3 100644 --- a/spark-standalone-agent/src/main/java/me/lucko/spark/standalone/StandaloneSparkAgent.java +++ b/spark-standalone-agent/src/main/java/me/lucko/spark/standalone/StandaloneSparkAgent.java @@ -23,7 +23,11 @@ package me.lucko.spark.standalone; import com.sun.tools.attach.VirtualMachine; import com.sun.tools.attach.VirtualMachineDescriptor; +import java.io.File; import java.lang.instrument.Instrumentation; +import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -51,9 +55,9 @@ public class StandaloneSparkAgent { try { VirtualMachine vm = VirtualMachine.attach(args[0]); - String agentPath = StandaloneSparkAgent.class.getProtectionDomain().getCodeSource().getLocation().getPath(); + URI agentPath = StandaloneSparkAgent.class.getProtectionDomain().getCodeSource().getLocation().toURI(); String arguments = String.join(",", Arrays.copyOfRange(args, 1, args.length)); - vm.loadAgent(agentPath, arguments); + vm.loadAgent(Paths.get(agentPath).toAbsolutePath().toString(), arguments); System.out.println("[spark] Agent loaded successfully."); vm.detach(); } catch (Throwable e) { |