RakSrinaNa:
私は現在のlog4j / SLF4Jとjavaの11でアプリを構築しようとしているが、私は、実行時にこの問題に直面しています:
2018-12-10 22:09:27,225 main INFO Cannot initialize scripting support because this JRE does not support it. java.lang.NoClassDefFoundError: javax/script/ScriptEngineManager
at [email protected]/org.apache.logging.log4j.core.script.ScriptManager.<init>(ScriptManager.java:69)
at [email protected]/org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:216)
at [email protected]/org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
at [email protected]/org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
at [email protected]/org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
at [email protected]/org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
at [email protected]/org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
at [email protected]/org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
at [email protected]/org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at org.apache.logging.log4j/org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
at org.apache.logging.log4j/org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121)
at [email protected]/org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:49)
at org.apache.logging.log4j/org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
at [email protected]/org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j/org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:355)
at org.slf4j/org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:380)
at fr.mrcraftcod.nameascreated/fr.mrcraftcod.nameascreated.NameAsCreated.<clinit>(NameAsCreated.java:39)
Caused by: java.lang.ClassNotFoundException: javax.script.ScriptEngineManager
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 17 more
その原点にあるコードは、私のロガーの初期化です。
private static final Logger LOGGER = LoggerFactory.getLogger(NameAsCreated.class);
私は上の依存関係を持っています:
- org.apache.logging.log4j:log4jの-API:2.11.1
- org.apache.logging.log4j:log4jのコア:2.11.1
- org.apache.logging.log4j:log4jの-slf4j18-のimpl:2.11.1
- SLF4J-API:org.slf4jに依存してMavenプロジェクト1.8.0ベータ2
私は、JavaのバージョンでOSXモハーベ上です:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment AdoptOpenJDK (build 11+28-201810021910)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11+28-201810021910, mixed mode)
誰かが私が間違ってやっているかのアイデアを持っていますし、私はこの問題を解決することができますか?
Ortomala Lokni:
よるとLog4jのドキュメント:
Log4jには、その構成要素の一部で使用されるJSR 223のスクリプト言語のサポートを提供します。
コメントで言ったようにしてAlan Bateman
Javaの9からあなたが明示的にJavaスクリプトモジュールを追加する必要があります--add-modules java.scripting
かにmodule-info.java
。
モジュールがあることにも注意jdk.scripting.nashorn
されたJavaの11で非推奨と将来のリリースでは削除されます。