You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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
      }
      
  • 检查代码放置位置
    Record必须作为顶级类(单独放在与类名同名的.java文件中,比如abcDTO.java),或者作为静态嵌套类放在其他顶级类内部,不能定义在方法、非静态代码块等区域。

内容的提问来源于stack exchange,提问作者Siddharth Bhatia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:54:58