как исправить java .lang.ClassNotFoundException: kotlin .String - PullRequest
3 голосов

Я пытаюсь загрузить kotlin.String, используя SystemClassLoader

        inputClassName = String::class.qualifiedName.toString()
        val input = ClassLoader.getSystemClassLoader()
            .loadClass(inputClassName) // here I get error

, и получаю ошибку. Трассировка стека:

Exception in thread "main" java.lang.ClassNotFoundException: kotlin.String
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
    at block.execution.Executor.init(Executor.kt:40)
    at block.AppKt.main(App.kt:50)

Что я делаю не так? Как я могу это исправить?

1 Ответ

4 голосов
/ 03 мая 2020

kotlin.String не существует как класс, который может быть загружен, он сопоставлен с java.lang.String компилятором. String::class.java.name даст вам фактическое название класса.

Конечно, как отмечает Михаил Копылов, нет смысла загружать класс по имени уже загруженного класса. Возможно, чтобы загрузить его в специфике c ClassLoader, но String определенно будет загружен загрузчиком системного класса в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...