Eclipse 셋팅 시 오류
1. You need to run build with JDK or have tools.jar on the classpath.
- 조치 : eclipse.ini (or STS.ini)를 열고 아래를 추가
- 주의 : this must go just above -vmargs
-vm C:/jdk1.8/bin/javaw.exe |
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project set: Fatal error compiling: tools.jar not found: C:\Program Files\Java\jre1.8.0_102\..\lib\tools.jar -> [Help 1]
보통 이클립스에서 STS + Maven + WAS를 연동하고, pom.xml에서 dependency를 조금 추가하던지.. 규모를 키우게 되면 Maven과 연동이 잘 되지 않게 되고.. Clean과 install을 하게 된다.
이클립스의 경우 Java 런타임을 따로 바꾸지 않을 경우 jre를 사용하게 되는데.. Maven에선 jdk를 요구하는데 대표적으로 위 에러가 발생한다.
위 에러는 쉽게 말하면 jre폴더에 tools.jar 라는 라이브러리가 존재하지 않아서 컴파일을 실패했다는 것이다. 고민하지 말고 다음과 같이 한다.
- 프로젝트를 우클릭하여 Properties 이동 (혹은 Alt + Enter)
- Java Build Path - Libraries - JRE System 클릭 후 - Edit
- Installed JREs - Edit - Add External JARS - C:\Program Files\Java\jdk1.x.0_xx\lib (폴더는 Windows 기준)
- tools.jar 파일 선택
- 혹은 jre대신 아예 Installed JREs에서 jdk를 등록하고 tools.jar도 같이 등록해서 JDK를 이용해도 무방
- 이래도 해결되지 않는다면, Windows - Preferences - Maven - User Settings
- Local Repository의 경로를 찾아가서 Maven repository의 dependency를 모두 삭제 후, Maven Clean, install 재개
간혹 스프링을 사용하면서 XML파일에서 "Unable to load schema mappings from location [META-INF/spring.schemas]"
와 같은 에러가 발생하기도 하는데. 해당 글이 같이 도움이 될 것이다!
참고 출처 : https://pnot.tistory.com/6https://eknote.tistory.com/1741
출처: https://liante0904.tistory.com/111 [Liante의 이야기]
------------다른글-------------------
https://pnot.tistory.com/6
--------------------------------------
POM에 아래 추가
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>C:/jdk1.8/lib/tools.jar</systemPath>
</dependency>
2. Spring boot 서버 구동시 에러조치
2018-08-21 09:05:31 [main] ERROR org.springframework.boot.SpringApplication:reportFailure:815 Application startup failed org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.lang.NoSuchMethodError: org.apache.catalina.Context.addServletMapping(Ljava/lang/String;Ljava/lang/String;)V at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:536) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) at com.axisj.thomas.AXBootApplicationInitializer.main(AXBootApplicationInitializer.java:19) Caused by: java.lang.NoSuchMethodError: org.apache.catalina.Context.addServletMapping(Ljava/lang/String;Ljava/lang/String;)V at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.addServletMapping(TomcatEmbeddedServletContainerFactory.java:279) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.addDefaultServlet(TomcatEmbeddedServletContainerFactory.java:259) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.prepareContext(TomcatEmbeddedServletContainerFactory.java:215) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:178) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134) ... 7 common frames omitted |
해당 프로젝트 폴더에서...
조치 : mvn dependency:tree