如何修复java.lang.ClassNotFoundException:kotlin.String

如何修复java.lang.ClassNotFoundException:kotlin.String,java,kotlin,Java,Kotlin,我正在尝试使用SystemClassLoader加载kotlin.String inputClassName = String::class.qualifiedName.toString() val input = ClassLoader.getSystemClassLoader() .loadClass(inputClassName) // here I get error 我发现了一个错误。堆栈跟踪: Exception in thr

我正在尝试使用
SystemClassLoader
加载
kotlin.String

        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)

我做错了什么?如何修复它?

kotlin.String
不是一个可以加载的类,它是由编译器加载的
java.lang.String
String::class.java.name
将为您提供类的实际名称


当然,正如Mikhail Kopylov所指出的,用已经加载的类的名称加载类没有什么意义。可能要将其加载到特定的
类加载器中,但系统类加载器肯定会加载
String

听起来您在运行时类路径中缺少kotlin依赖项。我只是好奇,既然已经有
String::class
,为什么还要加载String,即使Kotlin依赖项在类路径中,也会发生这种情况。@MikhailKopylov这只是一个简化的示例。我需要动态地加载用户请求的类,然后考虑接受它(参见)。