diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java index 8d6aa7d1c..a7574ef5a 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java @@ -19,6 +19,7 @@ package org.apache.skywalking.apm.agent.core.boot; +import java.net.URISyntaxException; import org.apache.skywalking.apm.agent.core.logging.api.ILog; import org.apache.skywalking.apm.agent.core.logging.api.LogManager; @@ -61,9 +62,11 @@ public class AgentPackagePath { urlString = urlString.substring(urlString.indexOf("file:"), insidePathIndex); File agentJarFile = null; try { - agentJarFile = new File(new URL(urlString).getFile()); + agentJarFile = new File(new URL(urlString).toURI()); } catch (MalformedURLException e) { logger.error(e, "Can not locate agent jar file by url:" + urlString); + } catch (URISyntaxException e) { + logger.error(e, "Can not locate agent jar file by url:" + urlString); } if (agentJarFile.exists()) { return agentJarFile.getParentFile();