NetBeans 22无法构建Code Name One Kotlin模板项目求助
问题解决步骤
1. 处理源码目录不存在的警告
你看到的Source root doesn't exist: /****/tools/MyApp/myapp/common/src/main/java是因为Kotlin模板项目的源码目录应为src/main/kotlin,但Maven配置中仍保留了Java源码路径。解决方式二选一:
- 手动创建
common/src/main/java目录(虽Kotlin项目用不上,但可消除警告); - 修改
common模块的pom.xml,更新源码目录配置:
<build> <sourceDirectory>src/main/kotlin</sourceDirectory> <testSourceDirectory>src/test/kotlin</testSourceDirectory> </build>
2. 解决核心的IllegalAccessError错误
这个错误的本质是你使用的Kotlin Maven插件1.3.72版本过于老旧,完全不兼容JDK 21/22的模块系统。老版本插件依赖的IntelliJ工具类试图访问JDK内部的sun.nio.ch.FileChannelImpl,而JDK 9+默认禁止未授权模块访问这类内部API。
解决方法是将Kotlin插件版本升级到支持JDK 21的版本(推荐1.9.20或更高):
找到项目中kotlin-maven-plugin的配置(通常在根pom.xml或common模块的pom.xml里),修改版本号:
<plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <!-- 替换为兼容JDK21的高版本,示例为1.9.20 --> <version>1.9.20</version> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> </execution> </executions> <!-- 可选:若升级后仍有增量编译问题,可临时禁用 --> <configuration> <incremental>false</incremental> </configuration> </plugin>
3. 额外注意事项
- Code Name One对JDK LTS版本(如JDK 21)兼容性更好,建议优先使用JDK 21而非JDK 22;
- 升级插件后,右键项目选择
Maven -> Reload Project,让NetBeans重新加载配置; - 若问题仍存在,尝试清理Maven缓存并重新构建:执行
mvn clean install -U强制更新依赖。
内容的提问来源于stack exchange,提问作者Christoforos
相关产品推荐
相关产品推荐

