sourcecode

아이디어: javac: 소스 릴리스 1.7에는 타깃 릴리스 1.7이 필요합니다.

copyscript 2022. 7. 31. 22:19
반응형

아이디어: javac: 소스 릴리스 1.7에는 타깃 릴리스 1.7이 필요합니다.

JUnit 테스트를 실행할 때 IntelliJ IDEA를 사용하면

여기에 이미지 설명 입력

어떻게 수정하면 좋을까요?

  • SDK 1.7 사용
  • 모듈 언어 레벨은 1.7

Maven 빌드는 정상적으로 동작합니다.(그 때문에 IDEA 구성 문제에서 이 점을 믿고 있습니다)

대부분의 경우 Maven에서 가져온 잘못된 컴파일러 옵션이 여기에 있습니다.

컴파일러 옵션

또한 스크린샷에 설명된 프로젝트 및 모듈 바이트 코드(타깃) 버전 설정도 확인하십시오.

소스 언어 레벨이 설정되어 있는 다른 장소:

  • 프로젝트 구조 | 프로젝트

프로젝트.

  • 프로젝트 구조 | 모듈 (모든 모듈 확인)| 출처

원천

기본 언어 레벨은 1.5(5.0)이며, 위 스크린샷에 이 버전이 모듈 언어 레벨로 표시됩니다.

이것은 maven-compiler-plugin 설정을 사용하여 변경할 수 있습니다.pom.xml:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

또는

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

IntelliJ IDEA는 Maven Projects 툴 창에서 Maven 프로젝트를 다시 Import한 후 이 설정을 적용합니다.

다시 Import

인텔리J 15, 2016 및 2017

인텔리J 13 및 14에 대해 아래에 설명한 것과 비슷하지만 [설정] / [설정]패널에 추가 레벨이 있습니다.Settings > Build, Execution, Deployment > Compiler > Java Compiler 순으로 선택합니다.

여기에 이미지 설명 입력

IntelliJ 13 및 14

IntelliJ 13 및 14에서는 [설정(Settings)]> [ 컴파일러(Compiler)]> [ Java 컴파일러 UI ]를 체크하여 모듈의 다른 바이트 코드 버전을 대상으로 하고 있지 않은지 확인합니다.

여기에 이미지 설명 입력

IntelliJ IDEA 14.1에서는 "타깃 바이트 코드 버전"이 다른 위치에 있습니다.

다음과 같은 변경이 작용했습니다.

[파일] > [설정]... > 빌드, 실행, 전개 > 컴파일러 > Java 컴파일러 : 타깃 바이트 코드 버전을 1.5에서 1.8로 변경합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

maven 3 및 JDK 7을 사용하는 경우 빌드 구성을 살펴보셨습니까?

<build>
    <finalName>SpringApp</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>

이 문제를 해결했습니다.[ Project Settings ]> [ Modules ]> [ Dependencies ]탭을 클릭합니다.Module SDK가 1.6으로 아직 설정되어 있는 것을 알고 1.7로 변경했더니 동작했습니다.

설정> 컴파일러> 자바 컴파일러 (인텔리제 아이디어 12.1.3)에서 필요한 옵션 ('타깃 바이트 코드 버전')을 찾았습니다.

다음 경로에서 프로젝트의 컴파일러 설정 파일을 수정하고 'target'을 1.7로 변경하십시오.

/project/.idea/syslog.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>

필드를 공백으로 설정하여 해결했습니다.

Settings > Compiler > Java 컴파일러 > Project 바이트 코드 버전

Than IntelliJ는 JDK 기본 버전을 사용합니다.

저도 한순간 뚜렷한 이유 없이 이 오류가 발생했습니다.컴파일러/모듈 등의 설정을 모두 변경했습니다.하지만 결국 저는 Maven 프로젝트를 다시 Import하여 IntelliJ 프로젝트를 재현했고 문제는 해결되었습니다.이건 버그인 것 같아.

IntelliJ 12 129.961

IntelliJ IDEA 14에서 v14.1로 조금 업그레이드한 후에 이 기능을 알게 되었습니다.톱/부모 폼의 편집이 도움이 되어, 재 Import Maven(자동이 아닌 경우)을 클릭했습니다).

단, 모듈/집약/부모모듈을 우클릭하여 Maven-> Import하면 충분합니다.

나는 Bellow 방법을 해결했다.

파일 >> 프로젝트 구조 >> 프로젝트 >> 프로젝트 언어 수준 --> 적절한 버전 설정 (예: 1.5)

.idea/misc.xml을 확인하십시오. languageLevel="수동으로 JDK_1_X" 속성

Gradle 프로젝트인 경우 build.gradle 파일에서 다음 설정을 검색합니다.

sourceCompatibility = "xx"
targetCompatibility = "xx"

모든 서브젝트에 대해 root build.gradle 파일에 다음과 같이 입력할 수 있습니다.

subprojects { project ->
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
}

[ Idea ]> [ Settings ]에서 언어 레벨을 수동으로 설정할 수 있습니다만, 그래들프로젝트인 경우, 그래들 설정(Idea 15+로 테스트 완료)에서 모듈 .iml 파일이 자동으로 동기화됩니다.그래들이 새로 고쳐지면 수동으로 변경한 내용이 모두 덮어쓰게 됩니다.

Gradle 매뉴얼에 따라 설정되지 않은 경우 현재 JVM 구성이 사용됩니다.

나는 이 오류에 맞닥뜨릴 다른 방법을 찾았다.디렉토리 구조를 재구성하고 있을 때 poom 중 하나가 javac을 설정하지 않은 오래된 부모를 가리키고 있는 경우(그 구성이 중간 수준으로 이동되었기 때문에).이 경우 최상위 레벨은 1.5로 기본 설정되며 동작하지 않는 하위 레벨의 pom이 이를 상속합니다.

따라서 이 오류가 발생했을 때 확인해야 할 또 다른 점은 POM 구조가 디렉토리 구조와 적절하게 일치하고 있다는 것입니다.

Maven 빌드가 정상적으로 동작하는 경우는, Maven 프로젝트와 IntelliJ IDEA 프로젝트의 구조를 동기화해 주세요.

[ Maven ] 창에서 [Refresh]버튼을 클릭합니다.이 버튼을 누르면 IntelliJ IDEA는 Maven 도구 창에서 프로젝트 구조를 해석합니다.

EAP 빌드를 사용하고 있는 경우는, Maven 동기 기능이 끊어지는 일이 있기 때문에, 이 방법은 도움이 되지 않는 경우가 있습니다.

이전 솔루션이 모두 작동하지 않는 경우(내 경우) 인텔리제 구성 파일을 삭제할 수 있습니다.

  • project_directory/.idea/syslog.xml
  • project_directory/.idea/encodings.xml
  • project_directory/.idea/misc.xml
  • project_directory/.idea/syslog.xml
  • project_directory/.idea/syslog.xml
  • project_directory/.idea/syslog.xml
  • 기타.

인텔리지는 나중에 새로운 것을 재생성할 것이다.다만, 주의해 주세요.프로젯에서 작성된 모든 인텔리제 설정(디버깅모드 설정 등)도 삭제됩니다.

빌드 구성에서 Java 컴파일러 버전을 변경해야 합니다.

여기에 이미지 설명 입력

올바른 부문이 선택되었는지 확인합니다.[파일] > [File]

프로젝트를 선택하고 종속성 탭으로 이동합니다.드롭다운에서 오른쪽 종속성을 선택하거나 새로 만듭니다.

언급URL : https://stackoverflow.com/questions/12900373/idea-javac-source-release-1-7-requires-target-release-1-7

반응형