web-dev-qa-db-ja.com

javac:無効なターゲットリリース:MacでMavenコマンドを実行すると1.8

Macで自動化テストを実行しようとしています。 MavenとJava、jdkを次のようにインストールしました。

Java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

およびMaven:

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T18:29:23+01:00)
Maven home: /usr/local/Cellar/maven/3.2.5/libexec
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.9.5", Arch: "x86_64", family: "mac"

Mavenコマンドを実行すると、次のエラーが発生しました。

[ERROR] Failure executing javac, but could not parse the error:
[ERROR] javac: invalid target release: 1.8
[ERROR] Usage: javac <options> <source files>
[ERROR] use -help for a list of possible options
[ERROR] -> [Help 1]

私はここで検索しました、1つの受け入れられた解決策はこれです:

Sudo cp $Java_HOME/lib/tools.jar /Library/Java/Extensions/

このコマンドを実行しましたが、何も起こりませんでした。何が悪いのかわかりません。

9
Ragnarsson

まず、次のコマンドを実行して、1.8 Javaがインストールされている場所を特定します。

/usr/libexec/Java_home -v 1.8

次に、次のコマンドを実行して、Java_HOME環境変数を設定します。

export Java_HOME=<whatever the output from the previous command was>

Mavenは、少なくともそのターミナルウィンドウでは、後で動作するはずです。

新しいターミナルを開くたびにこれらのコマンドを実行する必要がない場合は、プロファイルでJava_HOME環境変数を設定する必要があります。

22
Jason Reid

まだ行っていない場合は、_maven-compiler-plugin_を使用して、Maven内で使用するJavaバージョンを決定します。これを_pom.xml_ファイルに入れます(_<source/>_および_<target/>_バージョンから必要なJDKバージョンへ):

_<build>
    <plugins>
        <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>
    </plugins>
</build>
_

(すでに_<build/>_および/または_<plugins/_>セクションがある場合は、_<plugin/>_部分のみを追加してください。)

3
Danny Daglas