我使用kotlin std-lib中的KotlinJsr223,在运行时编译kotlin代码。
基本上为了概括这个问题,我有以下代码:
val engine = KotlinJsr223JvmLocalScriptEngineFactory().scriptEngine as KotlinJsr223JvmLocalScriptEngine
val kotlinScript = engine.compile("""println("Hello World")""") as KotlinJsr223JvmScriptEngineBase.CompiledKotlinScript
第二行(编译代码(一运行,就会抛出一个警告,后面跟着RuntimException。
异常主线为:
WARN: Failed to initialize native filesystem for Windows
java.lang.RuntimeException: Could not find installation home path. Please make sure bin/idea.properties is present in the installation directory.
创建文件系统时似乎出现了一些问题。
如果您想查看,完整堆栈跟踪的要点就在这里。
有办法解决这个问题吗?
编译不会退出应用程序,这有点像警告。在那之后,它类似于5秒的延迟,然后编译成功,但5秒的中断和控制台警告肯定是某种威胁,需要修复。
我的运行时环境如下:
- Windows 10版本1909
- Java-11.0.4
- Kotlin-1.3.72
- JVM-目标1.8
该问题仅在IDE中运行时发生,可以使用org.jetbrains.kotlin.cli.common.environment.setIdeaIoUseFallback
来缓解。
这可以在这里的例子中看到。