首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >线程“主”java.lang.NoClassDefFoundError中的异常:无法初始化类sun.util.calendar.ZoneInfoFile

线程“主”java.lang.NoClassDefFoundError中的异常:无法初始化类sun.util.calendar.ZoneInfoFile
EN

Stack Overflow用户
提问于 2022-01-13 10:24:05
回答 2查看 926关注 0票数 0

当我尝试使用命令systemctl start elasticsearch.service启动elasticsearch-6.8.20时,遇到了这个异常。

代码语言:javascript
运行
复制
  Starting Elasticsearch...
  systemd[1]: Started Elasticsearch.
  elasticsearch[71380]: Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.util.calendar.ZoneInfoFile
  elasticsearch[71380]: #011at sun.util.calendar.ZoneInfo.getTimeZone(ZoneInfo.java:589)
  elasticsearch[71380]: #011at java.util.TimeZone.getTimeZone(TimeZone.java:560)
  elasticsearch[71380]: #011at java.util.TimeZone.setDefaultZone(TimeZone.java:666)
  elasticsearch[71380]: #011at java.util.TimeZone.getDefaultRef(TimeZone.java:636)
  elasticsearch[71380]: #011at java.util.TimeZone.getDefault(TimeZone.java:625)
  elasticsearch[71380]: #011at java.text.SimpleDateFormat.initializeCalendar(SimpleDateFormat.java:657)
  elasticsearch[71380]: #011at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:601)
  elasticsearch[71380]: #011at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:580)
  elasticsearch[71380]: #011at org.apache.logging.log4j.status.StatusData.getFormattedStatus(StatusData.java:122)
  elasticsearch[71380]: #011at org.apache.logging.log4j.status.StatusConsoleListener.log(StatusConsoleListener.java:81)
  elasticsearch[71380]: #011at org.apache.logging.log4j.status.StatusLogger.logMessage(StatusLogger.java:278)
  elasticsearch[71380]: #011at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2170)
  elasticsearch[71380]: #011at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2125)
  elasticsearch[71380]: #011at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2108)
  elasticsearch[71380]: #011at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2002)
  elasticsearch[71380]: #011at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1974)
  elasticsearch[71380]: #011at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:741)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.pattern.PatternParser.createConverter(PatternParser.java:592)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.pattern.PatternParser.finalizeConverter(PatternParser.java:639)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.pattern.PatternParser.parse(PatternParser.java:415)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.pattern.PatternParser.parse(PatternParser.java:177)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.layout.PatternLayout$SerializerBuilder.build(PatternLayout.java:377)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.layout.PatternLayout.<init>(PatternLayout.java:129)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.layout.PatternLayout.<init>(PatternLayout.java:59)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.layout.PatternLayout$Builder.build(PatternLayout.java:660)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.config.AbstractConfiguration.setToDefault(AbstractConfiguration.java:584)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:560)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.config.builder.impl.DefaultConfigurationBuilder.build(DefaultConfigurationBuilder.java:204)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.config.builder.impl.DefaultConfigurationBuilder.build(DefaultConfigurationBuilder.java:161)
  elasticsearch[71380]: #011at org.apache.logging.log4j.core.config.builder.impl.DefaultConfigurationBuilder.build(DefaultConfigurationBuilder.java:57)
  elasticsearch[71380]: #011at org.elasticsearch.common.logging.LogConfigurator.configureStatusLogger(LogConfigurator.java:250)
  elasticsearch[71380]: #011at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:166)
  elasticsearch[71380]: #011at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:127)
  elasticsearch[71380]: #011at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:302)
  elasticsearch[71380]: #011at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
  elasticsearch[71380]: #011at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
  elasticsearch[71380]: #011at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
  elasticsearch[71380]: #011at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
  elasticsearch[71380]: #011at org.elasticsearch.cli.Command.main(Command.java:90)
  elasticsearch[71380]: #011at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116)
  elasticsearch[71380]: #011at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
  systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
  systemd[1]: elasticsearch.service: Failed with result 'exit-code'.

该服务不在配置文件elasticsearch.yml中定义的路径下进行日志记录。知道原因是什么吗?我正在使用openjdk版本"1.8.0_312“和Red版本8.3

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-21 16:24:24

我解决了问题。TimeZone依赖项在OpenJDK安装中丢失:符号链接$JAVA_HOME/jre/lib/tzdb.dat -> /usr/share/javazi-1.8/tzdb.dat指向一个空目录。我下载了rpm文件tzdata-java-2021c-1.el8.noarch.rpm,并使用以下命令安装:rpm -ivh tzdata-java-2021c-1.el8.noarch.rpm

现在一切正常。

票数 0
EN

Stack Overflow用户

发布于 2022-01-13 14:36:06

根据java.lang.NoClassDefFoundError: Could not initialize class XXX的说法,这个问题可能与ZoneInfoFile.java的静态初始化有关。

我可以建议的是创建一个使用ZoneInfoFile并在服务器中运行的简单类,以了解为什么不能初始化该类。

代码语言:javascript
运行
复制
import sun.util.calendar.ZoneInfoFile;

public class TestInitZoneInfoFile {
    public static void main(String[] args) {
        ZoneInfoFile.getZoneInfo("dummy");
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70694987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档