Skip to content

Commit 5d648fb

Browse files
committed
Use Java SDK defined on JAVA_HOME by default on JetBrains IDEs
1 parent 47c64d4 commit 5d648fb

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodProjectManager.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ import com.intellij.openapi.module.Module
1010
import com.intellij.openapi.module.ModuleManager
1111
import com.intellij.openapi.project.ModuleListener
1212
import com.intellij.openapi.project.Project
13+
import com.intellij.openapi.projectRoots.JdkUtil
1314
import com.intellij.openapi.projectRoots.ProjectJdkTable
1415
import com.intellij.openapi.projectRoots.Sdk
16+
import com.intellij.openapi.projectRoots.SimpleJavaSdkType
1517
import com.intellij.openapi.roots.ModuleRootModificationUtil
1618
import com.intellij.openapi.roots.ProjectRootManager
1719
import com.intellij.util.application
@@ -40,8 +42,16 @@ class GitpodProjectManager(
4042
application.invokeLaterOnWriteThread {
4143
application.runWriteAction {
4244
try {
43-
ProjectJdkTable.getInstance().preconfigure()
44-
pendingSdk.complete(ProjectJdkTable.getInstance().allJdks.firstOrNull())
45+
val jdkTable = ProjectJdkTable.getInstance()
46+
val javaHome = System.getenv("JAVA_HOME")
47+
if (javaHome !== null && JdkUtil.checkForJdk(javaHome)) {
48+
val sdk = SimpleJavaSdkType.getInstance().createJdk("Default", javaHome)
49+
jdkTable.addJdk(sdk)
50+
pendingSdk.complete(sdk)
51+
} else {
52+
jdkTable.preconfigure()
53+
pendingSdk.complete(jdkTable.allJdks.firstOrNull())
54+
}
4555
} catch (t: Throwable) {
4656
pendingSdk.completeExceptionally(t)
4757
}
@@ -78,4 +88,4 @@ class GitpodProjectManager(
7888
}
7989
}
8090
}
81-
}
91+
}

0 commit comments

Comments
 (0)