Eclipse / Maven 오류 : "이 환경에는 컴파일러가 제공되지 않음"
저는 Java 엔터프라이즈 개발 세계에 상대적으로 새로 온 사람입니다. 우리 조직의 Java 전문가는 무기한 가족 휴가 중이며, 그가 개발 한 Java 응용 프로그램 중 일부를 유지 관리하는 임무를 맡았습니다. 그는 떠나기 전에 내 컴퓨터에 Maven과 함께 Eclipse [Kepler SR1]을 설치했는데 제대로 작동하는 것처럼 보였습니다.
이제 첫 번째 수정을 배포 할 준비가되었고 Maven을 실행해야 install
하지만 작동하는 데 문제가 있습니다. 콘솔에 다음 출력이 표시됩니다.
[오류] 프로젝트 mrpapp에서 목표 org.apache.maven.plugins : maven-compiler-plugin : 3.1 : compile (default-compile)을 실행하지 못했습니다. 컴파일 실패
[오류]이 환경에서는 컴파일러가 제공되지 않습니다. 아마도 JDK가 아닌 JRE에서 실행 중입니까?
하지만 난 분명히 하고 JDK가 아닌 JRE를 실행. 나는 재확인 내 $JAVA_HOME
( C:\Program Files (x86)\Java\jdk1.7.0_60
)과는 않습니다 이 javac.exe
자사의 bin
디렉토리.
pom.xml
검토를 위해 파일 사본을 첨부합니다 . 나는 거기에 문제를 일으키는 무언가가 있다고 확신하지만 그것이 무엇인지 확실하지 않습니다. Windows 7 64 비트 노트북을 사용하고 있습니다. 추가 플랫폼 / 환경 정보가 필요하면 제공 할 수 있습니다.
어떤 도움이라도 대단히 감사하겠습니다.
창 → 환경 설정 → Java → 설치된 JRE로 이동하십시오.
JDK 경로를 가리키는 항목이 있는지 확인하고 그렇지 않은 경우 편집 버튼을 클릭하고 JAVA_HOME
환경 을 구성한 경로를 입력 합니다.
Screen_shot 설치된 JRE에 'tools.jar'을 추가합니다.
Eclipse
->window
->preference
.- 선택
installed JREs
->Edit
- 외부 Jar 추가
- 폴더
tools.jar
에서 선택하십시오java/JDKx.x/lib
. - 마침 클릭
창> 환경 설정> Java> 설치된 JRE>로 이동하여 설치된 JRE를 확인하십시오. 거기에 JDK가있는 항목이 있어야합니다.
나는 모든 것을 시도했다. 나를 위해 일한 것은 다음과 같습니다.
- Eclipse 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다.
- Java Build Path를 클릭하고 Libraries 탭으로 이동합니다.
- 거기에 추가 된 Java 버전을 확인하십시오. JRE 또는 JDK입니까?
- Maven 프로젝트를 사용 중이고 솔루션을 빌드하려는 경우.
- 추가 된 JRE를 선택하고 제거를 클릭하십시오.
- 외부 클래스 폴더 추가를 클릭하고 시스템에서 선택하여 JDK 설치를 추가하십시오.
- 적용 및 확인을 클릭하십시오.
- Eclipse를 다시 시작하십시오.
- 빌드가 성공했습니다.
이 구성을 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이 누락되어 있음을 발견했습니다. 콘솔에서 실행하고 있었기 때문에 다른 사람들이 제안한 이클립스 옵션을 시도 할 수 없었습니다 ..
jdk-8u92-windows-x64를 설치했습니다. 모든 옵션을 시도한 후 jdk1.8.0_92 / lib 폴더에 tools.jar이 누락 된 것을 확인했습니다. 이전 버전의 Java에서 tools.jar을 복사했습니다. 그런 다음 컴파일 할 수있었습니다.
설치된 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를 실행 중이고이 문제가있는 경우 다음 단계에 따라 답을 찾았습니다.
- Eclipse-> window-> preference.
- 설치된 JRE-> 추가 선택
- standardVM을 선택하십시오.
- JRE 홈 : [디렉토리 ..] 버튼을 누릅니다.
- Java를 선택하십시오 (내 문제는 내 일식이 java8로 실행되고 내 VM이 java7로 실행되었습니다), 제 경우에는 java8이 usr / local / jvm / java-8-oracle에 설치되었습니다.
- 마침을 누릅니다.
- 그런 다음 설치된 JRES 화살표를 눌러 다른 옵션을 볼 수 있습니다.
- 실행 환경으로 이동합니다.
- 왼쪽에서 JavaSE-1.6을 선택하고 오른쪽 (호환되는 JRE)에서 방금 설치 한 Java (제 경우에는 java-8-oracle)를 선택해야합니다. JavaSE1.8로이 단계를 수행해야합니다.
- 확인을 클릭하고 Eclipse를 다시 시작하십시오.
JDK 8 및 JRE 8이 설치된 Windows 10에서 새로 설치된 Eclipse Neon (JEE 개발자 용) 설치에서 Eclipse 내에서 maven 빌드를 실행하려고 할 때 동일한 오류가 발생했습니다.
나는 tools.jar을 외부 lib로 지정하고 jdk를 Eclipse에서 -vm으로 설정하려고 시도했습니다. 이 두 가지 모두 효과가 없었습니다.
위에서 언급 한대로 JDK를 기본 실행 환경으로 선택하면 트릭이 발생했습니다.
- Eclipse-> window-> preference-> java-> Installed JREs-> Execution Environments.
- JavaSE-1.8 선택
- "호환 가능한 JRE"에서 JDK1.8을 확인하십시오.
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>
따르기 : Windows- > 환경 설정 -> Java ---> 설치된 JRE
" 검색 .."을 클릭하십시오 .
C 드라이브 ---> 프로그램 파일로 이동합니다.
Eclipse는 모든 jre와 jdk를 찾습니다 .--> jdk 중 하나를 선택하고 Apply를 선택합니다.
제 경우에는 실행 구성을 만들었고 실행하려고 할 때마다 오류가 표시됩니다. 일부 웹 사이트에서 검색 한 후 실행 구성을 편집하고 JRE 탭에서 로컬 Java JDK 설치를 가리 키도록 이미 구성한 런타임 JRE를 '작업 공간 기본 JRE'로 선택했습니다 (예 : C : \ Program Files (x86) \ Java \ jdk1.8.0_51). 이것은 내 문제를 해결했습니다. 어쩌면 그것은 누군가를 도울 수 있습니다.
JRE 설치 필자의 경우 중복 된 이름을 제거하여 문제를 해결했으며 이름이 jdk.1.8.0_101 인 하나만 유지했습니다.
동일한 문제가 발생했습니다 .Windows> 환경 설정> Java> 설치된 JRE> 기존 JRE를 제거하고 Java bin 폴더 (주로 C : \ Program Files \ Java \ jdk1.8 아래에 있음)를 사용하여 Eclipse에서 Java를 bin 폴더로 가리 켰습니다. .트리플 엑스).
그런 다음 maven install을 실행하면 작동합니다.
Maven이 무엇을 사용하는지 확인하려면 명령 줄을 열고 다음을 입력합니다.
mvn –version
JAVA_HOME이 JRE가 아닌 JDK 홈을 참조하는지 확인
Windows의 경우 :
시스템 속성-> 고급 시스템 설정-> 고급-> 환경 변수로 이동하고 시스템 변수 섹션에서 JAVA_HOME 변수를 선택하고 편집을 클릭합니다. 다음 변수 이름으로 양식을 채 웁니다. JAVA_HOME 변수 값 :
Unix에서 :
export JAVA_HOME=<ABSOLUTE_PATH_TO_JDK>
이 링크 참조
실행 중일 때 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 (JDK / JRE)를 제거합니다 (하나 (최신) Java 버전 유지), 환경 변수 PATH / CLASSPATH에 이전 Java jre / jdk 항목이있는 경우 제거
- Eclipse-> Window-> Preferences-> Installed JREs-> Add / Edit JDK from the latest installation
- Eclipse-> Window-> Preferences-> Installed JREs-> Execution Environment-> 왼쪽에서 원하는 Java 버전을 선택하고 오른쪽의 확인란을 클릭하십시오.
maven을 사용하는 경우 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>
- Eclipse 프로젝트 Maven-> Update Project를 마우스 오른쪽 버튼으로 클릭하십시오.
나를 위해 (Windows 10에서)를 실행할 때 Windows 명령 프롬프트에서 "이 환경에서 컴파일러가 제공되지 않았습니다"라는 오류가 발생했습니다 mvn install
. 수정 사항은 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
.
Eclipse-> Window-> Preferences-> Installed JREs에서 pom.xml의 Java 버전과 jre 버전을 확인하십시오. 제 경우에는 pom.xml이 다른 버전을 가지고 있습니다 (이클립스는 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 [perfect match] "(Java 버전이 1.8 인 경우)로 볼 수 있습니다. 그런 다음 maven을 사용하여 빌드하십시오.
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/
명령 프롬프트 %JAVA_HOME%
에 입력하여 설정 했는지 확인하십시오 echo %JAVA_HOME%
. 해당 세트가없는 경우 Java 경로를 Window의 환경 변수에 추가해야합니다.
이것은 나를 위해 일했습니다. 1. 창-> 환경 설정-> 설치된 JRE를 클릭하십시오. 2. 아래 이미지와 같이 참조가 JDK 용인지 확인합니다.
그렇지 않은 경우 추가-> 표준 VM-> 디렉토리를 선택하여 JDK 경로 제공을 클릭하고 이미지에 표시된대로 완료를 클릭하십시오.
I had a problem with Eclipse Neon where the workspace default did not actually change even though I added the correct location under Preferences->Java->Installed JREs. This was in a new workspace I created to work on a code branch; it was originally set to the JRE location rather than the JDK. Yet even after changing the preferences, I could build with the command line, yet building in Eclipse produced the no compiler error. Please see
Maven Package Compilation Error
for my answer on which Eclipse configuration file(s) had to be manually edited to make Eclipse recognize the correct workspace default. I still have no idea why the preferences setting did not carry through to the new workspace's configuration.
'programing tip' 카테고리의 다른 글
gem install json -v 1.7.3은 '빌드 도구를 포함하도록 PATH를 업데이트하십시오'를 제공합니다. (0) | 2020.10.31 |
---|---|
한 스토리 보드에서 다른 스토리 보드로 뷰 컨트롤러 이동 또는 복사 (0) | 2020.10.31 |
Eclipse가 시작되지 않고 로그 오류 메시지 : ObjectNotFoundException : 트리 요소 (0) | 2020.10.31 |
여러 값과 일치하는 if 문 (0) | 2020.10.31 |
웹 페이지의 콘텐츠를 가져 와서 문자열 변수에 저장하는 방법 (0) | 2020.10.31 |