kotlin 代码的运行时编译抛出 RuntimeException(警告:无法为 Windows 初始化本机文件系统)

Runtime compilation of kotlin code throws RuntimeException (WARN: Failed to initialize native filesystem for Windows)

我正在使用来自 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.

Looks like there's some problem in creating filesystem.

Full stack trace's gist is here,如果你想检查。

有没有办法解决这个问题?

编译没有退出应用程序,有点像警告。之后好像延迟了 5 秒,然后编译成功,但仍然中断 5 秒,控制台警告一定是某种威胁,需要修复。


我的运行环境如下:

此问题仅在 IDE 中的 运行 时出现,可以通过 org.jetbrains.kotlin.cli.common.environment.setIdeaIoUseFallback 缓解。

这可以在示例中看到here