IntelliJはIDEからアプリケーションを実行しているときにclasspathに古典的な依存性を持たせていません(kotlinアプリケーションですが問題ありません)。私のGradleのビルドは、行が含まれていますIntellijはアプリケーション実行時にクラスパスにgradle依存関係を持たない
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.+'
依存関係が正しくのIntelliJで「外部ライブラリ」の下に表示されます。
ソースコードで依存関係が提供するクラスを手作業で参照しようとすると、コンパイラは不平を言ってコードを正常にコンパイルしません。 しかし、アプリケーションを実行するとClassNotFoundExceptionが発生します。
//This import is provided by logback-classic library
import org.slf4j.impl.StaticLoggerBinder
...
// This compiles successfully, but will trigger ClassNotFoundException when run
val singleton = StaticLoggerBinder.getSingleton()
私は、実行時クラスパスアウト一覧表示するコードが含ま:
val cl = ClassLoader.getSystemClassLoader()
val urls = (cl as URLClassLoader).urLs
for (url in urls) {
System.out.println(url.file)
}
と出力をIDEから実行すると、logback-古典含まれていません。サンプル出力は:logback-古典的ではない(とlogback芯logbackクラシックの推移依存性である)しながら
...
/Users/knesek/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.8.8/bf88c7b27e95cbadce4e7c316a56c3efffda8026/jackson-databind-2.8.8.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.8.8/e2e95efc46d45be4b429b704efbb1d4b89721d3a/jackson-module-jaxb-annotations-2.8.8.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/com.sun.mail/javax.mail/1.5.6/ab5daef2f881c42c8e280cbe918ec4d7fdfd7efe/javax.mail-1.5.6.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.1.11/88b8df40340eed549fb07e2613879bf6b006704d/logback-core-1.1.11.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1.1/98e484e67f913e934559f7f55f0c94be5593f03c/kotlin-stdlib-1.1.1.jar
/Users/knesek/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/4.3.9.RELEASE/daa5abf3779c8cad1a2910e1ea08e4272489d8ae/spring-beans-4.3.9.RELEASE.jar
...
艶やか、logback-coreがそこにあります。
InteliJを無効にして、InteliJを再構築して再起動しました。 gradleからのcomplingとjarファイルの実行はうまくいきます。助言がありますか?
[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)のバグレポートは、https://youtrack.jetbrains.com/issues/IDEAで歓迎します。 – CrazyCoder
私はそれを簡単なプロジェクトで再現することができました。 –