IntelliJ编译Java项目遇-javaagent处理失败错误求助
解决JDK 19 + Apple Silicon环境下IntelliJ启动Java项目的编码解码错误
错误信息
Exception in thread "main" java.lang.IllegalArgumentException: Error decoding percent encoded characters at java.base/sun.net.www.ParseUtil.decode(ParseUtil.java:218) at java.base/jdk.internal.loader.URLClassPath$FileLoader.<init>(URLClassPath.java:1218) at java.base/jdk.internal.loader.URLClassPath$3.run(URLClassPath.java:491) at java.base/jdk.internal.loader.URLClassPath$3.run(URLClassPath.java:485) at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) at java.base/jdk.internal.loader.URLClassPath.getLoader(URLClassPath.java:484) at java.base/jdk.internal.loader.URLClassPath.getLoader(URLClassPath.java:452) at java.base/jdk.internal.loader.URLClassPath.getResource(URLClassPath.java:321) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:757) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:435) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503) *** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at open/src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422 FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
解决方案
- 检查路径合法性:确保项目根目录、Java Agent的路径中没有空格、非ASCII字符(如中文、特殊符号)。如果存在这类字符,要么修改路径为纯英文无空格格式,要么对特殊字符做标准URL编码(比如空格替换为
%20)。 - 切换到JDK 17 LTS版本:JDK 19为非LTS版本,在Apple Silicon架构下的兼容性不如JDK 17。在IntelliJ中依次打开
File > Project Structure > Project,将SDK切换为aarch64架构的JDK 17;同步修改Build工具(Gradle/Maven)的JDK配置,确保全局运行环境一致。 - 移除无效Java Agent参数:打开IntelliJ的
Run/Debug Configurations,查看VM options中的-javaagent:相关参数,暂时移除所有该类配置后重新启动项目。很多第三方插件或监控工具的agent可能在Apple Silicon上存在兼容性问题。 - 清理IntelliJ缓存:通过
File > Invalidate Caches...选择Invalidate and Restart,清理IDE缓存后重启,避免缓存导致的配置异常。 - 确认JDK架构:在终端执行
java -version,输出中需包含aarch64字样,确保使用的是Apple Silicon原生版本的JDK,而非x86架构版本(依赖Rosetta运行易引发兼容性问题)。
内容的提问来源于stack exchange,提问作者MatteoCampa
相关产品推荐
相关产品推荐

