使用Java Record创建Jfrog Artifactory时遇编译错误求助
Java Record编译错误:class, interface, or enum expected 解决方法
你遇到的编译错误本质是Java环境不支持Record特性,或者代码放置位置不符合语法要求,和Jfrog Artifactory本身无关——构建时触发代码编译才会报错,以下是具体解决步骤:
核心原因
Record是Java 16正式引入的语法特性,如果你的项目编译JDK版本低于16,或者构建工具未正确配置Java版本,就会触发这个错误。另外,若将Record定义在方法、非静态代码块等不允许的位置,也会报同样的错。
解决步骤
升级并配置Java版本
确保项目编译环境(包括构建服务器使用的JDK)为Java 16或更高版本,同时在构建工具中明确指定版本:- Maven配置(pom.xml):
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>16</source> <target>16</target> </configuration> </plugin> </plugins> </build> - Gradle配置(build.gradle):
plugins { id 'java' } java { sourceCompatibility = JavaVersion.VERSION_16 targetCompatibility = JavaVersion.VERSION_16 }
- Maven配置(pom.xml):
检查代码放置位置
Record必须作为顶级类(单独放在与类名同名的.java文件中,比如abcDTO.java),或者作为静态嵌套类放在其他顶级类内部,不能定义在方法、非静态代码块等区域。
内容的提问来源于stack exchange,提问作者Siddharth Bhatia
相关产品推荐
相关产品推荐

