[java] 치명적 오류 컴파일 : 유효하지 않은 대상 릴리스 : 1.8-> [도움말 1]

잘못된 대상 릴리스 : 1.7 에 게시 된 것과 비슷한 문제가 있지만 블로그를 따른 후에도 여전히 문제가 해결되지 않습니다.

hm_app 프로젝트에서 목표 org.apache.maven.plugins : maven-compiler-plugin : 3.1 : compile (기본 컴파일)을 실행하지 못했습니다 : 치명적 오류 컴파일 : 잘못된 대상 릴리스 : 1.8-> [도움말 1]

이 문제에 직면했을 때 튜토리얼 로 따르고있었습니다 .

abt java & mvn

C:\mvn>echo %JAVA_HOME% 
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields

출력

C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4



답변

%JAVA_HOMEjdk 1.7로 설정 했지만 1.8을 사용하여 컴파일하려고합니다. jdk 1.8을 설치 %JAVA_HOME하고 그것을 가리 키거나 대상 릴리스를 1.7로 떨어 뜨려 놓으십시오.

유효하지 않은 대상 릴리스 : 1.8

대상 릴리스는 jdk 버전을 나타냅니다.


답변

플러그인에 값을 넣으십시오.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

오류는 사용되었습니다 :

<source>${java.version}</source>
<target>${java.version}</target>


답변

필자의 경우 maven “Run configuration”에서 잘못된 JRE (1.7)를 사용하고있었습니다. 있는지 확인하는 실행 -> 실행 구성 -> (탭) JRE는 일부 jdk1.8.x. 할 수


답변

JDK가 1.7을 가리키고 JRE가 1.8을 가리키면서 문제가 해결되었습니다. 명령 프롬프트에서 입력을 확인하십시오.

java -version

javac -version.

둘 다 같아야합니다.
 


답변

이클립스에서 내 문제를 해결하는 방법은 다음과 같습니다.

  1. 환경 설정-> 컴파일러-> 컴파일러 불만 자 레벨 (1.8로 변경)
    여기에 이미지 설명을 입력하십시오

  2. 종속성-> 설치된 JRE-> JAVA SE 8 1.8을 선택하십시오.
    여기에 이미지 설명을 입력하십시오

  3. Run as maven build를 사용하여 maven을 통해 다시 빌드하십시오.

더 이상 유효하지 않은 대상 오류를 표시하지 않아야합니다.
참고 : 터미널에서 다른 변수를 설정하거나 변경할 필요가 없었습니다. 도움이 되었기를 바랍니다.


답변

그것을 .profile에 넣으면 동적으로 $JAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home)

나중에 껍질을 닫고 새 것을 열고 테스트하십시오

echo $JAVA_HOME

다음과 같이 표시되어야합니다.

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

그렇지 않은 경우 시작 스크립트에서 다른 JAVA_HOME 할당을 제거하십시오. 이러한 시작 스크립트는로 시작 .하므로 *와일드 카드를 사용할 때는 숨겨져 포함되지 않습니다 . 예를 들어 홈 디렉토리의 모든 파일을 grep하려는 경우 다음을 수행해야합니다.

grep -s JAVA_HOME ~/.* --exclude=.bash_history


답변

내가 직면 한 문제는 명령 프롬프트에서 maven 빌드를 만들 수 있었지만 Eclipse에서는 불가능하다는 것입니다. 이클립스에서 저에게 효과가 있었던 것은 JDK 내부의 JRE 폴더를 가리 키도록 실행 구성을 변경했다는 것입니다. 표준에 따라 JDK 폴더.이 솔루션은 당신에게도 효과가 있지만 모든 java 경로가 정확하고 java와 javac가 pom.xml의 대상에있는 것과 동일한 버전을 표시하는 경우에만 시도하십시오.