sourcecode

IntelliJ IDEA에서 "Error:java: Compilation failed: internal Java compiler error idea"라고 표시됨

copyscript 2023. 1. 20. 16:15
반응형

IntelliJ IDEA에서 "Error:java: Compilation failed: internal Java compiler error idea"라고 표시됨

IntelliJ IDEA를 사용하여 Java 프로젝트를 컴파일하면 다음과 같은 출력(및 오류)이 나타납니다.

Information:Eclipse compiler 4.6.2 was used to compile java sources
Information:Module "sinoWeb" was fully rebuilt due to project configuration/dependencies changes
Information:2017/3/23 11:44 - Compilation completed with 1 error and 0 warnings in 5m 32s 949ms
Error:java: Compilation failed: internal java compiler error

나는 이것 때문에 꽤 혼란스러워!내 설정은 다음과 같습니다.

이미지 설명 입력

여기에 이미지 설명 입력

  1. Intelij IDEA에서 Ctrl + Alt + S를 눌러 설정을 엽니다.
  2. 빌드, 실행, 도입 -> 컴파일러 -> Java 컴파일러
  3. 프로젝트 바이트 코드 버전에서 Java 버전을 선택합니다.
  4. 가능한 경우 모듈 타깃 JDK에서 컴파일러 사용 선택을 취소합니다.
  5. [적용]을 클릭하여 [OK]을 클릭합니다.

인텔리J 컴파일러 설정에서 빌드 프로세스 힙사이즈의 디폴트값(700)을 증가시켜 이 문제를 해결했습니다.

여기에 이미지 설명 입력

컴파일러를 이클립스로 바꾸고 프로젝트를 진행했어요.그 후 다시 Javac으로 변경되어 문제가 해결되었습니다.정확한 문제는 모르지만 해결 방법을 찾는 사람에게 도움이 될 수 있습니다.

인텔리 자바 컴파일러

제 경우 Java 11을 사용하여 다음을 수행했습니다.

 public List<String> foo() {
   ...
   return response.readEntity(new GenericType<List<String>>() {});

는 나에게 "이것"을 사용해야 했다.<>GenericType<List<String>>

 public List<String> foo() {
   ...
   return response.readEntity(new GenericType<>() {});

4개의 함수로 실행했는데 내부 컴파일러 오류로 컴파일을 중단하고 되돌아가 다시 컴파일을 했습니다.유형 추론이 있는 버그 같은데

저는 모듈의 타깃 바이트 코드 버전이 5로 설정되었습니다.8로 변경했더니 오류가 사라졌습니다.

모듈의 바이트 코드 버전 설정

JIdea 2020.1.2 이상에서는

이는 Project Structure의 언어 수준 설정이 대상 바이트 코드 버전과 호환되지 않을 수 있습니다.

타깃 바이트 코드버전을 변경해야 합니다.

  1. [설정]으로 이동합니다[ Ctrl + Alt + S ]
  2. Java 컴파일러 선택
  3. 표에서 모듈을 선택합니다.
  4. 언어 수준에서 이전 단계에서 선택한 내용을 매핑하도록 바이트 코드 버전을 변경합니다.

여기에 이미지 설명 입력

메모: 언어 수준 확인 방법

  1. 프로젝트 구조 AltShiftS[++]로 이동합니다.
  2. [ Modules ]서브섹션 선택
  3. 모듈을 선택합니다.
  4. sources-섹션에서 Language Level을 체크합니다.

여기에 이미지 설명 입력

저 같은 경우에는...lombokintellij 2019.2 Java11 )

IDEA 버그에 따르면 회피책 아이디어가 다시 작동하면 다음과 같이 됩니다.

Disable all building from intelliJ and dedicate the build to Maven.

여기에 이미지 설명 입력

모듈별 바이트 코드 버전 설정

나도 같은 문제를 만났다.

Target 바이트 코드 오류를 1.5에서 8로 변경하여 해결했습니다.

Javac 옵션을 비활성화해야 합니다.가능한 경우 모듈 타깃 JDK에서 컴파일러를 사용합니다.여기에 이미지 설명 입력

이었습니다.restTemplate다음과 같습니다.

ResponseEntity<Map<String, Integer>> response = restTemplate.exchange(
        eurl,
        HttpMethod.POST,
        requestEntity,
        new ParameterizedTypeReference<>() { <---- this causes error
        }
);

다음과 같이 해야 합니다.

ParameterizedTypeReference<Map<String, Integer>> responseType = new ParameterizedTypeReference<>() {};

ResponseEntity<Map<String, Integer>> response = restTemplate.exchange(
        url,
        HttpMethod.POST,
        requestEntity,
        responseType
);

프로젝트 설정에서 언어 수준(Ctrl + Alt + Shift + S)을 Java 8로 변경하면 문제가 해결되었습니다.

저도 같은 문제가 있었어요.설정 변경을 수정했습니다.프로젝트 바이트 코드 버전과 동일한 대상 바이트 코드 버전입니다.

여기에 이미지 설명 입력

Open JDK 버전을 업데이트한 것이 효과가 있었습니다.

이전 버전의 JDK(openjdk version "11" 2018-09-25)가 설치된 Windows 10의 Community Edition 2020.3에서도 동일한 오류가 발생했습니다.

JDK를 javac 11.0.10으로 업데이트하면 문제가 해결되었습니다.

다음은 openjdk 버전 "11" 2018-09-25를 사용할 때 오류와 함께 나타난 스택 추적입니다.

java: compiler message file broken: key=compiler.misc.msg.bug arguments=11, {1}, {2}, {3}, {4}, {5}, {6}, {7}
java: java.lang.AssertionError
java:   at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155)
java:   at jdk.compiler/com.sun.tools.javac.util.Assert.check(Assert.java:46)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$2$1.setOverloadKind(DeferredAttr.java:172)
java:   at jdk.compiler/com.sun.tools.javac.comp.ArgumentAttr.visitReference(ArgumentAttr.java:283)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMemberReference.accept(JCTree.java:2190)
java:   at jdk.compiler/com.sun.tools.javac.comp.ArgumentAttr.attribArg(ArgumentAttr.java:197)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:653)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:751)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1997)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1634)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:655)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3573)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2110)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitApply(Attr.java:2006)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitReturn(Attr.java:1866)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1546)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStat(Attr.java:724)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribStats(Attr.java:743)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1294)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1020)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:498)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:481)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr.attribSpeculativeLambda(DeferredAttr.java:456)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode$StructuralStuckChecker.canLambdaBodyCompleteNormally(DeferredAttr.java:900)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode$StructuralStuckChecker.visitLambda(DeferredAttr.java:878)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1807)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode$StructuralStuckChecker.complete(DeferredAttr.java:832)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:335)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode.process(DeferredAttr.java:779)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.complete(DeferredAttr.java:626)
java:   at jdk.compiler/com.sun.tools.javac.comp.Infer.instantiateMethod(Infer.java:214)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:605)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1563)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1733)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1802)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1776)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve$10.doLookup(Resolve.java:2654)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3293)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3543)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2651)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2645)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.selectSym(Attr.java:3721)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3601)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2598)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$4.complete(DeferredAttr.java:374)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:321)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:1060)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve$4.checkArg(Resolve.java:887)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve$AbstractMethodCheck.argumentsAcceptable(Resolve.java:775)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve$4.argumentsAcceptable(Resolve.java:896)
java:   at jdk.compiler/com.sun.tools.javac.comp.Infer.instantiateMethod(Infer.java:181)
java:   at jdk.compiler/com.sun.tools.javac.comp.Resolve.checkMethod(Resolve.java:644)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.checkMethod(Attr.java:4120)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.checkIdInternal(Attr.java:3913)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.checkMethodIdInternal(Attr.java:3814)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.checkId(Attr.java:3803)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3696)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2595)
java:   at jdk.compiler/com.sun.tools.javac.comp.DeferredAttr$DeferredAttrNode.process(DeferredAttr.java:811)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:3553)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:2243)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:702)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1773)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1452)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1098)
java:   at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:866)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4683)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4574)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4523)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4503)
java:   at jdk.compiler/com.sun.tools.javac.comp.Attr.attrib(Attr.java:4448)
java:   at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1341)
java:   at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:973)
java:   at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
java:   at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
java:   at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
java:   at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
java:   at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:231)
java:   at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:501)
java:   at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:353)
java:   at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:277)
java:   at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:231)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1441)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1100)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1224)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1066)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:832)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:419)
java:   at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:183)
java:   at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:132)
java:   at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:302)
java:   at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:132)
java:   at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:219)
java:   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java:   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java:   at java.base/java.lang.Thread.run(Thread.java:834)
java: Compilation failed: internal java compiler error
java: Errors occurred while compiling module 'project'
javac 11 was used to compile java sources
Finished, saving caches...
Compilation failed: errors: 1; warnings: 100

에는 저저에 안 .help > show logs in files 그그가 .idea.log ★★★★★★★★★★★★★★★★★」build-log「」와

/home/user/.cache/JetBrains/IntelliJIdea2021.2/log/build-log/ 레벨을 합니다.log4j.rootLogger=debug, filebuild-log.properties

그리고 다시 빌드를 실행해 보니

2021-11-27 19:59:39,808 [ 133595]  DEBUG - s.incremental.java.JavaBuilder - Compiling chunk [module] with options: "-g -deprecation -encoding UTF-8 -source 11 -target 11 -s /home/user/project/target/generated-test-sources/test-annotations", mode=in-process
2021-11-27 19:59:41,082 [ 134869]  DEBUG - s.incremental.java.JavaBuilder - java:ERROR:Compilation failed: internal java compiler error

【Junit Test】【Junit Test】【Junit Test】【Junit Test】【Junit 】【Junit Test】【Junit 】【Junit 】【Junit 】【Junit 】【 】【 】【 which which는는는는 which which which which which which which which which는 which는는빈티지 엔진과 주피터 엔진은 위의 오류와 관련된 자바 버전이 다를 수 있는 구형/불일치를 가지고 있었습니다. ${version.junit}에러를 삭제.

  <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-commons</artifactId>
            <version>1.7.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>

즉, 일부 종속성 jar에 일치하지 않는 Java 버전이 있을 수 있습니다.

Java 컴파일러를 업데이트하여 "Target bytecode version"(내 경우 8):

여기에 이미지 설명 입력

여기에 이미지 설명 입력

설정 -> 빌드 -> 컴파일러 -> Java 컴파일러 대상 바이트 코드 버전이 잘못되었습니다.1.8로 설정했는데 작동했어요.

한 가지 이유는 프로젝트의 jdk 버전 donot maxh 최소 버전일 수 있습니다.

JDK-8177068의 문제로 인해 다음과 같은 내부 오류가 발생할 수 있습니다.

java.lang.NullPointerException
        at jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitApply(Flow.java:1233)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1628)
        at jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
        at jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:393)
        at jdk.compiler/com.sun.tools.javac.tree.TreeScanner.visitExec(TreeScanner.java:213)
        ...

JDK 11.0.12JDK 14 b14로 수정되었으므로 업그레이드가 도움이 되었습니다.

같은 에는 ★★★★★★★★★★★★★★★★★★★★★★★.Information:java: java.lang.OutOfMemoryError: GC overhead limit exceeded intellij.

컴파일러 -> 빌드 프로세스 힙사이즈 증가.

여기에 이미지 설명 입력

참고 자료: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360003315120-GC-overhead-limit-exceeded

5월은 이 사례와 관련이 없을 수 있지만,

이 에러는, 다음의 Explicit type 인수를 변경했을 때에 표시됩니다.

new ParameterizedTypeReference<List<SomeDtoObject>>()

로로 합니다.<>:

new ParameterizedTypeReference<>()

restTemplate가 Intelij를 한 후 콜.<>★★★★★★ 。

변경 내용을 Explicit type 인수로 되돌리면 수정되었습니다.

Java 11에서도 같은 문제에 직면하고 있었습니다.언어 수준 변경으로 해결

파일 -> 프로젝트 구조 -> 프로젝트

"언어 수준" SDK 기본값으로 변경

여기에 이미지 설명 입력

cmd 행으로 전환했습니다.mvn compile더 의미 있는 오류를 보여주었습니다.

치명적인 오류 컴파일: 오류: 비활성 대상 릴리스: 17 -> [도움말 1 ]

확인 중JAVA_HOME11로 설정되었습니다.11을 사용하도록 프로젝트를 조정한 후, 이것을 극복하고, 또 다른 에러(별도로 해결)에 도달했습니다.

언급URL : https://stackoverflow.com/questions/42966889/intellij-idea-tells-me-errorjava-compilation-failed-internal-java-compiler-e

반응형