메이븐이 JDK 1.6을 사용하는 이유 그러나 내 자바버전은 1.7이다.
나는 수염을 깎는 것도 처음이고, MacOS도 처음이야.
터미널에서 설정을 마쳤으며 버전 설정을 가져올 때(사용)mvn -v
)는 JDK 1.6을 사용하는 것 같고, 나는 JDK 1.7을 설치한 것 같아.무슨 문제라도 있니?
입력하는 명령은 다음과 같다.
blues:helloworld Ninja$ java -version
java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)`
blues:helloworld Ninja$ mvn -v
Apache Maven 3.1.0 (893ca28a1da9d5f51ac03827af98bb730128f9f2; 2013-06-28 10:15:32+0800) Maven home: /usr/local/Cellar/maven/3.1.0/libexec Java version: 1.6.0_51, vendor: Apple Inc. Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: zh_CN, platform encoding: EUC_CN OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
다음 사항을 당신의 것에 첨가하다.~/.mavenrc
:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/{jdk-version}/Contents/Home
두 번째 솔루션:
echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile
속으로 들어가다
/System/Library/Frameworks/JavaVM.framework/Versions
그리고 최신 정보를 업데이트하십시오.CurrentJDK
을 가리키는 상징적 연결
/Library/Java/JavaVirtualMachines/YOUR_JDK_VERSION/Contents/
예시
cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/ CurrentJDK
이제 그것은 즉시 작동될 것이다.
너도 할 수 있어
<properties>
...
<!-- maven-compiler-plugin , aka JAVA Compiler 1.7 -->
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
...
</properties>
당신은 또한 어떤 Java 버전을 컴파일할 것인지 maven에게 명시적으로 말할 수 있다.추가해 보십시오.maven-compiler-plugin
네 멋대로.
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
메이븐 프로젝트를 IDE로 가져온 경우, 메이븐 러너가 사용하고 있는 기본 컴파일러에 대한 메이븐 설정이 IDE에 있을 수 있다.
그것은 나를 도와주었다.pom.xml에 추가하면 된다.
기본적으로 Java 1.5 또는 1.6을 사용하는 maven 컴파일러 플러그인은 pom.xml에서 재정의해야 한다.
<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>
Eclipse Users의 경우.예를 들어 패키지를 치료하는 실행 구성이 있는 경우
구성 실행 패널에는 실행할 런타임을 지정할 수 있는 JRE 탭이 있다.이 구성은 pom.xml에 있는 모든 구성보다 우선한다는 점에 유의하십시오.
이 질문에 늦었지만 MacOS에서 JDK 버전을 처리하는 가장 좋은 방법은 http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/에서 설명한 스크립트를 사용하는 것이라고 생각한다.
호환성을 확인하십시오.하고 몸부림쳤다.mvn 3.2.1
그리고jdk 1.6.0_37
여러 시간 동안모든 변수가 설정되었지만 작동하지 않았다.마침내 업그레이드했다.jdk to 1.8.0_60
그리고mvn 3.3.3
그게 먹혔어났어환경 변수:
JAVA_HOME=C:\ProgramFiles\Java\jdk1.8.0_60
MVN_HOME=C:\ProgramFiles\apache-maven\apache-maven-3.3.3
M2=%MVN_HOME%\bin extend system level Path- ;%M2%;%JAVA_HOME%\bin;
@마스터고우라프의 솔루션은 완벽하게 작동한다.
나는 보통 Java 스위치 문을 zsh 함수에 넣는다.
alias java_ls='/usr/libexec/java_home -V 2>&1 | grep -E "\d.\d.\d[,_]" | cut -d , -f 1 | colrm 1 4 | grep -v Home'
function java_use() {
export JAVA_HOME=$(/usr/libexec/java_home -v $1)
echo export "JAVA_HOME=$(/usr/libexec/java_home -v $1)" > ~/.mavenrc
export PATH=$JAVA_HOME/bin:$PATH
java -version
}
너는 달릴 수 있다.java_ls
사용 가능한 JVM을 모두 컴퓨터에 저장하려면
그 다음에java_use 1.7
자바와 메이븐에 모두 1.7을 사용한다.
참조URL: https://stackoverflow.com/questions/18813828/why-maven-uses-jdk-1-6-but-my-java-version-is-1-7
'IT이야기' 카테고리의 다른 글
VueJS(vuex)에서 온디맨드 방식으로 데이터 가져오기 (0) | 2022.05.01 |
---|---|
사용자 지정 테마 추가 방법 확인 (0) | 2022.04.29 |
모듈 구문 분석 실패:예기치 않은 문자 '@'(1:0) vuejs, vuetify 및 vuex (0) | 2022.04.29 |
테스트하기 위해 비공개 방법을 공개하는 것... 좋은 생각인가? (0) | 2022.04.29 |
Java에서 int가 null일 수 있는가? (0) | 2022.04.29 |