detect user-specific jdk installations on macOs (fixes #8031)

User-specific JDKs are installed, for example, by IntelliJ IDEA
This commit is contained in:
Dmitrii Naumenko 2025-02-04 18:11:06 +01:00
parent 58be9438f8
commit a7d862a08b
1 changed files with 11 additions and 5 deletions

View File

@ -412,13 +412,19 @@ private[sbt] object CrossJava {
class MacOsDiscoverConfig extends JavaDiscoverConf {
val base: File = file("/Library") / "Java" / "JavaVirtualMachines"
// User-specific JDKs are installed, for example, by IntelliJ IDEA
private val baseInUserHome: File = Path.userHome / "Library" / "Java" / "JavaVirtualMachines"
def javaHomes: Vector[(String, File)] =
wrapNull(base.list())
.collect {
case dir @ JavaHomeDir(version) =>
version -> (base / dir / "Contents" / "Home")
}
findAllHomes(base) ++
findAllHomes(baseInUserHome)
private def findAllHomes(root: File): Vector[(String, File)] = {
wrapNull(root.list()).collect {
case dir @ JavaHomeDir(version) =>
version -> (root / dir / "Contents" / "Home")
}
}
}
class JabbaDiscoverConfig extends JavaDiscoverConf {