升级到Java 17会抛出Java.lang.RuntimeException:创建扩展解析器类时出错:无法确定类是否已



我使用的是jtwig lib,代码运行良好,但当我们升级到Java 17时,我得到了下面提到的运行时异常。

下面是调用template.render((时抛出RuntimeException的方法

String renderDescription(String templatePath,String userId, String caseId) {
JtwigTemplate template = 
JtwigTemplate.classpathTemplate(templatePath);
JtwigModel model = JtwigModel.newModel()
.with("userId", userId)
.with("caseId", caseId)
.with("statusPageUrlTemplate", 
config.getStatusPageUrlTemplate());
return template.render(model);
}
java.lang.RuntimeException:创建扩展语法分析器类时出错:无法确定类"org.jtwig.parser.parboile.base.BoolianParser$$parboiled"是否已加载网址:org.parboiled.Parboile.createParser(Parboile.java:58(网址:org.jtwig.parser.parbured.ParserContext.instance(ParserContext.java:31(网址:org.jtwig.parser.parboiled.ParboiledJtwigParser.parse位于org.jtwig.parser.cache.InMemoryConcurrentPersistentTemplateCache.get(InMemoryConcurrentPersistentTemplateCache.java:39(网址:org.jtwig.parser.CachedJtwigParser.parse(CachedJtweigParser.java:19(网址:org.jtwig.JtwigTemplate.render(JtwigTemplate.java:98(网址:org.jtwig.JtwigTemplate.render(JtwigTemplate.java:74(

我在升级JVM版本后遇到了类似的问题,我发现添加这个环境变量有帮助:

JDK_JAVA_OPTIONS=--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED

我认为这与在尝试检查内置类时对反射进行更严格的默认限制有关。

最新更新