IDE

[eclipe]이클립스 톰켓 서버 시작시 SEVERE: Failed to trigger creation of the GC Daemon thread during Tomcat start to prevent possible memory leaks. This is expected on non-Sun JVMs. 오류 해결하기

1. java.lang.ClassNotFoundException: sun.misc.GC 오류

이클립스에서 톰켓 서버를 시작할 때 아래와 같은 오류가 발생하는 경우 있어요.

SEVERE: Failed to trigger creation of the GC Daemon thread during Tomcat start to prevent possible memory leaks. This is expected on non-Sun JVMs.
java.lang.ClassNotFoundException: sun.misc.GC
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:433)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:586)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at org.apache.catalina.core.JreMemoryLeakPreventionListener.lifecycleEvent(JreMemoryLeakPreventionListener.java:350)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:388)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.startup.Catalina.load(Catalina.java:643)
at org.apache.catalina.startup.Catalina.load(Catalina.java:668)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)

 

2. 이클립스 개발 환경

OS : 윈도우 10
자바 버전 : 1.8.0_201-1ojdkbuild
apache-tomcat : 7.0.82

프로젝트 최상위 폴더 선택 후 > 마우스 우클릭 > Properties( Alt + Enter)  선택 > Java Build Path 선택


 

3. 원인

오류가 발생한 원인은 자바 버전과 톰캣서버 버전 문제입니다.

 

4. 해결방법

Tomcat 8이고 자바 11을 사용중일때 해결방법

(sun.misc.GC 는 java 9에서 제외)

tomcat 8에서 tomcat 9 로 버전을 올리거나 또는 자바 11 에서  자바 8로 다운그레이드 합니다.

 

Tomcat 7.0.82 이고 JDK 9.0.1을 사용중일 때 해결방법

JDK 8로 다운그레이드 하면 해결됩니다.

 

[관련정보]

https://tomcat.apache.org/tomcat-8.5-doc/config/listeners.html

 

Apache Tomcat 8 Configuration Reference (8.5.71) – The LifeCycle Listener Component

The Security Lifecycle Listener performs a number of security checks when Tomcat starts and prevents Tomcat from starting if they fail. The listener is not enabled by default. To enabled it uncomment the listener in $CATALINA_BASE/conf/server.xml. For Tomc

tomcat.apache.org

 

Leave a Reply

error: Content is protected !!