【问题标题】:Java 9 and tomcat 7.0.73Java 9 和 tomcat 7.0.73
【发布时间】:2018-08-30 03:43:03
【问题描述】:

我正在使用 java 9 和 tomcat 7.0.73 运行我的 java 应用程序,并且在我的 catalina.out 文件中得到关注。

  • 有什么办法可以避免这种情况吗?
  • 能否请您帮助我了解此错误的影响。我的应用程序正在正常运行。
  • 还有为什么在tomcat启动时会创建GC守护线程,是否可以配置?

这是 catalina.out 文件中的错误。

Mar 10, 2018 2:09:39 AM org.apache.catalina.core.JreMemoryLeakPreventionListener lifecycleEvent
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:466)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:292)
        at org.apache.catalina.core.JreMemoryLeakPreventionListener.lifecycleEvent(JreMemoryLeakPreventionListener.java:324)
        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:642)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:667)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)

我用的是官方的oracle jdk

/usr/local/java/jdk9/bin/java --version
java 9.0.4
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

【问题讨论】:

  • 你用的是官方的Oracle JDK吗?
  • 是的,我使用的是官方的 oracle jdk
  • 使用较新的 tomcat 或较旧的 Java。
  • 你能帮我理解这件事的影响吗?我的应用程序正在正常运行。你也知道为什么在tomcat启动时会创建GC daemon线程吗
  • sun.misc.GC 是旧版本中的 JDK 内部类,它不再存在。 Tomcat 不应该尝试直接使用它。您是否尝试过更新版本的 Tomcat?我认为需要 Tomcat 9 才能在 JDK 9 或更高版本上运行。

标签: java tomcat tomcat7 java-9


【解决方案1】:

对我来说,解决方案是:我用于 tomcat 的 JRE 不是正确的。

  • 双击服务器
  • 运行时环境
  • 选择合适的 JRE

【讨论】:

    猜你喜欢
    • 2018-02-05
    • 2017-09-08
    • 2018-10-09
    • 2019-03-22
    • 1970-01-01
    • 2020-10-14
    • 2018-04-20
    • 1970-01-01
    相关资源
    最近更新 更多