kotlin代码的运行时编译引发RuntimeException(警告:无法初始化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.

创建文件系统时似乎出现了一些问题。

如果您想查看,完整堆栈跟踪的要点就在这里。

有办法解决这个问题吗?

编译不会退出应用程序,这有点像警告。在那之后,它类似于5秒的延迟,然后编译成功,但5秒的中断和控制台警告肯定是某种威胁,需要修复。


我的运行时环境如下:

  • Windows 10版本1909
  • Java-11.0.4
  • Kotlin-1.3.72
  • JVM-目标1.8

该问题仅在IDE中运行时发生,可以使用org.jetbrains.kotlin.cli.common.environment.setIdeaIoUseFallback来缓解。

这可以在这里的例子中看到。

最新更新