使用ZoneRulesProvider时间歇性遇到NoClassDefFoundError

问题描述 投票:0回答:1

我知道这在某种程度上类似于此question,但是那里的答案似乎对我没有帮助。但是我也遇到了同样的问题..这是一段日志,

java.lang.NoClassDefFoundError: Could not initialize class 
java.time.zone.ZoneRulesProvider
java.time.ZoneRegion.ofId(ZoneRegion.java:120)
java.time.ZoneId.of(ZoneId.java:411)
java.time.ZoneId.of(ZoneId.java:359)
java.time.ZoneId.of(ZoneId.java:315)
java.util.TimeZone.toZoneId(TimeZone.java:556)
java.time.ZoneId.systemDefault(ZoneId.java:274)

并且似乎来自我的实用程序方法中的ZoneId.systemDefault(),

    public  static String formatDate(Date date) {
        if(Objects.nonNull(date)) {
            LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            return localDate.format(<some_formats_here>);
        }

        return null;
    }

环境正在使用,

openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

任何帮助将不胜感激!

顺便说一下,这是间歇性发生的,并且是在将最新代码部署到服务器之后发生的。即使设置的环境与生产环境相同,我在本地计算机的构建中都没有遇到过。

谢谢!

我知道这在某种程度上类似于这个问题,但是那里的答案似乎对我没有帮助。但是我也遇到了同样的问题..这是日志的片段,java.lang ....

noclassdeffounderror
1个回答
0
投票

事实证明,根据我的同事,必须在系统级别上声明JVM_HOME。这部分代码就是解决问题的方法:

© www.soinside.com 2019 - 2024. All rights reserved.