Do not try to load jrt file system from JDK version < 9

The FileSystems.newFileSystem call failed if the compiler was being run
on Java 9 with -jdk-home $JDK_16
This commit is contained in:
Alexander Udalov
2017-06-23 19:50:02 +03:00
parent 0f4684da67
commit 40d4eeab4f
@@ -45,12 +45,12 @@ class CoreJrtFileSystem(private val fileSystem: FileSystem) : DeprecatedVirtualF
companion object {
fun create(jdkHome: File): CoreJrtFileSystem? {
val rootUri = URI.create(StandardFileSystems.JRT_PROTOCOL + ":/")
val jrtFsJar = loadJrtFsJar(jdkHome) ?: return null
val fileSystem =
if (SystemInfo.isJavaVersionAtLeast("9")) {
FileSystems.newFileSystem(rootUri, mapOf("java.home" to jdkHome.absolutePath))
}
else {
val jrtFsJar = loadJrtFsJar(jdkHome) ?: return null
val classLoader = URLClassLoader(arrayOf(jrtFsJar.toURI().toURL()), null)
FileSystems.newFileSystem(rootUri, emptyMap<String, Nothing>(), classLoader)
}