aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2025-01-15 21:13:07 +0000
committerLuck <git@lucko.me>2025-01-15 21:13:07 +0000
commit509aa7ac42023a536bc173bbe3ce75ef600c71c1 (patch)
tree58d3f05817866efc131eaf7bb7f11f3808788381
parent273f9bc8aa6501d7de908f12e26dc68657304704 (diff)
downloadspark-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.java8
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) {