From 509aa7ac42023a536bc173bbe3ce75ef600c71c1 Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 15 Jan 2025 21:13:07 +0000 Subject: Fix standalone attach on Windows (#484) --- .../main/java/me/lucko/spark/standalone/StandaloneSparkAgent.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'spark-standalone-agent/src') 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) { -- cgit