
.kotlin.kotlin-annotation-processing.1.4.21-2.source-code.javacUtils.kt Maven / Gradle / Ivy
/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.kapt.cli
import java.io.File
internal const val JAVAC_CONTEXT_CLASS = "com.sun.tools.javac.util.Context"
internal fun areJavacComponentsAvailable(): Boolean {
return try {
Class.forName(JAVAC_CONTEXT_CLASS)
true
} catch (e: ClassNotFoundException) {
false
}
}
internal fun findToolsJar(): File? {
val currentJavaHome = System.getProperty("java.home")
?.takeIf { it.isNotEmpty() }
?.let(::File)
?.takeIf { it.exists() }
?: return null
fun getToolsJar(javaHome: File) = File(javaHome, "lib/tools.jar").takeIf { it.exists() }
getToolsJar(currentJavaHome)?.let { return it}
if (currentJavaHome.name == "jre") {
getToolsJar(currentJavaHome.parentFile)?.let { return it}
}
return null
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy