From 9157a41dfffcbec0fb4eac26166e4fc4097e260c Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Thu, 7 Feb 2019 13:13:12 +0300 Subject: [PATCH] IDEA-206484 "Switch Boot Runtime" dialog: Some local JDKs are shown as "Undefined[Local]" in drop-down list --- .../src/com/intellij/bootRuntime/bundles/Runtime.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/bootRuntime/bundles/Runtime.kt b/platform/lang-impl/src/com/intellij/bootRuntime/bundles/Runtime.kt index 7e971fa63fc0..f80b68a3cebc 100644 --- a/platform/lang-impl/src/com/intellij/bootRuntime/bundles/Runtime.kt +++ b/platform/lang-impl/src/com/intellij/bootRuntime/bundles/Runtime.kt @@ -6,10 +6,18 @@ import com.intellij.execution.ExecutionException import com.intellij.execution.configurations.GeneralCommandLine import com.intellij.execution.util.ExecUtil import com.intellij.openapi.application.PathManager +import com.intellij.openapi.util.SystemInfo import java.io.File abstract class Runtime(initialLocation:File) { + val JAVA_FILE_NAME by lazy { + if (SystemInfo.isWindows) { + return@lazy "java.exe" + } + return@lazy "java" + } + open val fileName: String by lazy { initialLocation.name } @@ -34,7 +42,7 @@ abstract class Runtime(initialLocation:File) { } protected fun fetchVersion (): String { - val javaFile = installationPath.walk().filter { file -> file.nameWithoutExtension == "java" }.first() + val javaFile = installationPath.walk().filter { file -> file.name == JAVA_FILE_NAME }.first() try { val output = ExecUtil.execAndGetOutput(GeneralCommandLine(javaFile.path, "-version")) val matchResult: MatchResult? = "version \"(\\d?(.\\d)*(.\\d)*_*\\d*\\d*-*(ea|release|internal)*)\"".toRegex().find(output.stderr)