java.lang.ClassNotFoundExceptionがソリューション

クラスのロードパスを見つける方法

クラスから通常.jarロードされたファイルは、遭遇したClassNotFoundException我々は、モジュールが提供するこのクラス検索する必要があるかもしれない時に
Class#getProtectionDomain()私たちを助けることができるの

fun main(args: Array<String>) {
        val c = Class.forName(args[0])
        println("${ c.getProtectionDomain() }")
}

たとえばはjavax.activation.DataHandlerは削除JDK 11で廃止されましたが、それはJavaMailのは、Mavenのリポジトリhttps://mvnrepository.com/artifact/javax.activation/activation/1.1.1 jarファイルのダウンロード後に、これらのクラスを必要とします

$ jk -cp activation-1.1.1.jar MainKt javax.activation.DataHandler
ProtectionDomain  (file:/home/xxx/kt/FindClass/activation-1.1.1.jar <no signer certificates>)
 jdk.internal.loader.ClassLoaders$AppClassLoader@1affbebc
 <no principals>
 java.security.Permissions@4a574795 (
 ("java.io.FilePermission" "/home/xxx/kt/FindClass/activation-1.1.1.jar" "read")
 ("java.lang.RuntimePermission" "exitVM")
)

生産と開発環境がjarファイルが欠落している正確に何である前に異常を解決するために、このことから、我々は、知ることができます


おすすめ

転載: www.cnblogs.com/develon/p/11703486.html