在IntelliJ中构建Kotlin应用时遭遇构建进程异常终止错误
解决IntelliJ中Kotlin应用构建进程异常终止问题
错误信息
Abnormal build process termination: nice -n 10 /Users/yashwandhare/Library/Java/JavaVirtualMachines/openjdk-22.0.2/Contents/Home/bin/java -Xmx700m -Djava.awt.headless=true "-Djna.boot.library.path=/Applications/IntelliJ IDEA CE.app/Contents/lib/jna/aarch64" -Djna.nosys=true -Djna.noclasspath=true --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -Dexternal.project.config=/Users/yashwandhare/Library/Caches/JetBrains/IdeaIC2024.3/projects/niffler.36f9b025/external_build_system -Dcompile.parallel=true -Drebuild.on.dependency.change=true -Didea.IntToIntBtree.page.size=32768 -Djdt.compiler.useSingleThread=true -Daether.connector.resumeDownloads=false -Dio.netty.initialSeedUniquifier=-532604766655091619 -Djps.use.dependency.graph=true -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=IN -Didea.paths.selector=IdeaIC2024.3 "-Didea.home.path=/Applications/IntelliJ IDEA CE.app/Contents" "-Didea.config.path=/Users/yashwandhare/Library/Application Support/JetBrains/IdeaIC2024.3" "-Didea.plugins.path=/Users/yashwandhare/Library/Application Support/JetBrains/IdeaIC2024.3/plugins" -Djps.log.dir=/Users/yashwandhare/Library/Logs/JetBrains/IdeaIC2024.3/build-log "-Djps.fallback.jdk.home=/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home" -Djps.fallback.jdk.version=21.0.5 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=/Users/yashwandhare/Library/Caches/JetBrains/IdeaIC2024.3/compile-server/niffler_99297dbb/_temp_ -Djps.backward.ref.index.builder=true -Djps.backward.ref.index.builder.fs.case.sensitive=false -Dcompilation.charts=false -Djps.kotlin.home=/Users/yashwandhare/Library/Caches/JetBrains/IdeaIC2024.3/kotlin-dist-for-ide/1.6.21 -Dkotlin.incremental.compilation=true -Dkotlin.incremental.compilation.js=true -Dkotlin.daemon.enabled -Dkotlin.daemon.client.alive.path=/var/folders/zq/jpv9zlnx77j6qvbkcn5qvj7w0000gp/T/kotlin-idea-10739428649398147487-is-running -Dide.propagate.context=false -classpath "/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jps-launcher.jar" org.jetbrains.jps.cmdline.Launcher "/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jps-builders.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jps-builders-6.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jps-javac-extension.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/util-8.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/util_rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/platform-loader.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/annotations.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/trove.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jetbrains.kotlinx.metadata.jvm.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/netty-codec-protobuf.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/protobuf.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/jps-model.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/javac2.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/forms_rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/util.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/lib-client.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/aether-dependency-resolver.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/maven-resolver-connector-basic.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/maven-resolver-transport-file.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/maven-resolver-transport-http.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-jps-plugin/1.6.21/kotlin-jps-plugin-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-daemon-client/1.6.21/kotlin-daemon-client-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-build-common/1.6.21/kotlin-build-common-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-reflect/1.6.21/kotlin-reflect-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-util-io/1.6.21/kotlin-util-io-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-util-klib/1.6.21/kotlin-util-klib-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-util-klib-metadata/1.6.21/kotlin-util-klib-metadata-1.6.21.jar:/Users/yashwandhare/.m2/repository/org/jetbrains/kotlin/kotlin-native-utils/1.6.21/kotlin-native-utils-1.6.21.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/util-8.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jps/java-compiler-charts-jps.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/javaFX/lib/javaFX-jps.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/javaFX/lib/javaFX-common.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/eclipse/lib/eclipse-jps.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/eclipse/lib/eclipse-common.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/platform-langInjection/lib/java-langInjection-jps.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/Groovy/lib/groovy-jps.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/Groovy/lib/groovy-constants-rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/maven/lib/maven-jps.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/gradle-java/lib/gradle-jps.jar" org.jetbrains.jps.cmdline.BuildMain 127.0.0.1 56648 2a1d78c1-d8a1-439d-a787-6fedde34a9c5 /Users/yashwandhare/Library/Caches/JetBrains/IdeaIC2024.3/compile-server Be careful, logger will be shut down earlier than application: Unable to make field private static java.util.IdentityHashMap java.lang.ApplicationShutdownHooks.hooks accessible: module java.base does not "opens java.lang" to unnamed module @6d03e736 Build process started. Classpath: /Applications/IntelliJ IDEA CE.app/Contents/plugins/java/lib/jps-launcher.jar Error connecting to 127.0.0.1:56648; reason: Bad file descriptor: /127.0.0.1:56648 io.netty.channel.AbstractChannel$AnnotatedSocketException: Bad file descriptor: /127.0.0.1:56648 Caused by: java.net.SocketException: Bad file descriptor at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:1060) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:384) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:432) at io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:386) at io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:585) at io.netty.channel.nio.NioIoHandler.processSelectedKeysPlain(NioIoHandler.java:530) at io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:503) at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:478) at io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:184) at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:156) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1123) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.base/java.lang.Thread.run(Thread.java:1570) Exiting.
问题根源
- JDK版本不兼容:使用的OpenJDK 22.0.2与旧版Kotlin插件(1.6.21)不匹配,JDK 22的模块系统限制更严格,导致反射访问
java.lang.ApplicationShutdownHooks时出现权限错误。 - 构建进程通信失败:上述权限错误导致构建进程提前终止,进而引发Socket连接失败(Bad file descriptor)。
解决步骤
降级JDK版本
- 打开IntelliJ,进入
File > Project Structure - 在
Project Settings > Project中,将Project SDK切换为JDK 21或17(LTS版本兼容性更好) - 同步项目的Gradle/Maven配置,确保构建脚本中的
sourceCompatibility和targetCompatibility与所选JDK版本一致
- 打开IntelliJ,进入
更新Kotlin插件
- 进入
Settings > Plugins,找到Kotlin插件 - 点击"Update"按钮,将插件更新到与当前IntelliJ版本匹配的最新稳定版(建议Kotlin 1.9+版本)
- 进入
清理缓存与构建目录
- 执行
File > Invalidate Caches... > Invalidate and Restart,重启IntelliJ - 删除项目根目录下的
build、.gradle(或.mvn)目录,清除本地构建缓存
- 执行
临时JVM参数 workaround
如果暂时无法降级JDK,可添加JVM参数绕过模块权限限制:- 进入
Help > Edit Custom VM Options - 添加一行:
--add-opens java.base/java.lang=ALL-UNNAMED - 重启IntelliJ后尝试构建
- 进入
内容的提问来源于stack exchange,提问作者Yash Wandhare
相关产品推荐
相关产品推荐

