私は、Javaエンタープライズ開発の世界に比較的新しい人です。私の組織のJava教祖は無期限の家族休暇をとっています、そして私は彼が開発したJavaアプリケーションのいくつかを維持する仕事を割り当てられました。彼が去る前に彼は私のコンピューターでMavenを使ってEclipse [Kepler SR1]をセットアップしました、そしてそれはうまくいくように見えました。
これで最初の変更をデプロイする準備が整い、Maven install
を実行する必要がありますが、うまく動作させることができません - コンソールに次のような出力が表示されます。
[エラー]目標org.Apache.maven.pluginsを実行できませんでした:maven-compiler-plugin:3.1:プロジェクトmrpappでコンパイル(デフォルト - コンパイル):コンパイル失敗
[エラー]この環境ではコンパイラは提供されていません。おそらくあなたはJDKではなくJREで走っていますか?
しかし私は間違いなく私はJREではなくJDKを実行しています。私は$Java_HOME
(C:\Program Files (x86)\Java\jdk1.7.0_60
)をダブルチェックしました、そしてそれはbin
ディレクトリにjavac.exe
を持っています。
あなたのレビューのために私のpom.xml
ファイルのコピーを添付しています。問題の原因となっているものがそこにあると確信していますが、それがどうなるかはわかりません。あなたが私が同様にそれを供給することができるさらなるプラットフォーム/環境情報が必要な場合、私はWindows 7 64bitのラップトップを使用しています。
任意の助けは大歓迎です。
ウィンドウ→設定→Java→インストール済みJREの順に選択します。
そしてJDKパスを指すエントリがあるかどうかを確認し、そうでない場合はEditボタンをクリックしてあなたがJava_HOME
環境を設定したパスを入れてください。
Screen_shotインストールされたJREに 'tools.jar'を追加します。
Eclipse
- > window
- > preference
.installed JREs
- > Edit
を選択しますtools.jar
フォルダーからJava/JDKx.x/lib
を選択します。「ウィンドウ」>「設定」>「Java」>「インストール済みのJRE」>に進み、インストール済みのJREを確認します。そこにJDKのエントリがあるはずです。
私はすべてのことを試しました。私のために働いたのは次のとおりです。
この設定をpom.xmlに追加します。
<project ...>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
Jdk1.8_92を使用していたときも、同様のエラーに直面しました。私にとっては、jdkフォルダーにtools.jarがないことがわかりました。私はコンソールで実行していたので、他の人が提案したEclipseのオプションを試すことができませんでした。
Jdk-8u92-windows-x64をインストールしました。すべてのオプションを試した後、jdk1.8.0_92/libフォルダにtools.jarがないことを確認しました。私は古いバージョンのJavaからtools.jarをコピーしました。それからそれはコンパイルすることができました。
JDK 8とJRE 8がインストールされたWindows 10で、新しくインストールされたEclipse Neon(JEE開発者用)インストールでEclipse内でMavenビルドを実行しようとしたときに同じエラーが発生しました。
Eclipseで-dmとしてjdkを設定するだけでなく、tools.jarを外部ライブラリとして指定することを試みました。どちらもうまくいきませんでした。
上記のようにデフォルトの実行環境としてJDKを選択すると、うまくいきませんでした。
手順3の互換JREリストボックスの上のテキストには、「デフォルトのJREはチェックすることで指定できます」と表示されています。
注:pomに1.8を明示的にリストしたMavenコンパイラー・プラグインもあります。
<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>
インストール済みのjreに切り替えても同じようなエラーが修正されなかったため、pom.xmlの要素、特にjdk.versionに次のエントリがあるかどうかを確認してください。
<properties>
<jdk.version>1.7</jdk.version>
<spring.version>4.1.1.RELEASE</spring.version>
<jstl.version>1.2</jstl.version>
<junit.version>4.11</junit.version>
</properties>
誰かがUbuntuでEclipseを実行していてこの問題を抱えている場合、私はこれらのステップに従うことによって答えを見つけました:
従ってください:ウィンドウズ - >設定 - >Java--->インストール済みJRE
「検索..」をクリックしてください。
Cドライブに移動します--->プログラムファイル
Eclipseはすべてのjreとjdkを見つけます - >jdkのいずれかを選択してApplyを選択します
同じ問題を抱えていて、次のようにして、Eclipseのbinフォルダを指すようにしました。 .x_xx).
それからmaven installを実行してください。
Mavenが何を使用しているかを確認するには、コマンドラインを開いて次のように入力します。
mvn –version
Java_HOMEがJREではなくJDKホームを参照していることを確認します。
Windowsの場合
「システムのプロパティ」 - >「システムの詳細設定」 - >「詳細」 - >「環境変数」の順に選択し、「システム環境変数」セクションで「Java_HOME」変数を選択し、「編集」をクリックします。
UNIXの場合
export Java_HOME=<ABSOLUTE_PATH_TO_JDK>
このリンク を参照してください
Installed JRE 私の場合、重複した名前を削除することで問題を解決しました。名前はjdk.1.8.0_101の1つだけにしました。
私の場合は、実行構成を作成していて、実行しようとするたびにエラーが表示されます。いくつかのWebサイトを検索した後、実行設定を編集し、JREタブでランタイムJREを自分のローカルJava JDKインストールを指すようにすでに設定した「ワークスペースデフォルトJRE」として選択しました(例C:\ Program Files(x86))。\Java\jdk1.8.0_51)これで私の問題は解決しました。多分それはそこに誰かを助けます。
私がmvn compile
を実行していたとき、私はコンソールの下のエラーを得ていました:
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1087 source files to C:\Code\DevVNextComplete\Development_vNext\Source\JARS\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[対処]
私は自分の環境変数にJava_HOME変数を追加していましたが、それはうまくいきました。
コマンドプロンプトで%Java_HOME%
を入力して、echo %Java_HOME%
が設定されていることを確認してください。それが設定されていない場合は、JavaパスをWindowのEnvironmental Variablesに追加する必要があります。
MavenはJDKをコンパイルする必要があります。 Eclipseでは、あなたのJREをあなたのJava_HOMEが指すJDKパスに変更する必要があります。 「ウィンドウ」>「設定」>「Java」>「インストール済みJRE」にナビゲートします。
Pom.xml内のmaven-compiler-pluginが、Java_HOME内のJavaバージョンのソースとターゲットを持っていることを確認してください。
http://learn-automation.com/maven-no-compiler-is-provided-in-this-environment-Selenium/
私にとって(Windows 10上)、私はmvn install
を実行したときにWindowsコマンド・プロンプトで「この環境ではコンパイラーは提供されません」というエラーを受け取りました。この修正により、Java_HOME環境変数が私のjdkを指すように変更されました(C:\ Program Files\Java\jdk1.8.0_101)。以前はjreを指していました。
そしてEclipseに新しいjdkを使わせるために、私はEclipseディストリビューションのEclipse.ini
を編集し、-vm
の行をC:\Program Files\Java\jdk1.8.0_101\bin
に変更しました。
pom.xmlでJavaのバージョンを確認し、Eclipse - > Window - > Preferences - > Installed JREでjreのバージョンを確認します。私の場合、pom.xmlのバージョンは異なります(Eclipseでは1.7を使用していましたが、1.8を使用していました)。 pom.xmlのバージョンを1.7に修正しました。
コマンドウィンドウでEclipseの外部で作業している場合
コマンドウィンドウに次のコマンドを入力して、正しいJava_HOMEがあり、そのディレクトリにコンパイラが含まれていることを確認します。
dir %Java_HOME%\bin\javac.*
1.Windows - >設定 - > Java - >インストール済みJRE - >実行環境に移動します。
2. [実行環境]ボックスで、現在使用しているJavaのバージョンを選択します。 「Compatible JREs」ボックスに、「jre1.8.0_102 [完全一致]」と表示されるようになりました(Javaのバージョンが1.8の場合)。それからmavenを使ってビルドしてみてください。
Mavenを使用している場合は、pluginsタグ内にpom.xml(必要に応じてバージョンを更新)に次のタグを含めます。
<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>