diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AndroidSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AndroidSubplugin.kt index 614f70125fe..aec5155ab51 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AndroidSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AndroidSubplugin.kt @@ -27,7 +27,6 @@ import org.gradle.api.Project import org.gradle.api.UnknownDomainObjectException import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.compile.AbstractCompile -import com.intellij.openapi.util.text.StringUtil.* import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper import org.jetbrains.kotlin.gradle.tasks.KotlinCompile diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt index a10598de433..86be6bd3889 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt @@ -11,6 +11,7 @@ import com.intellij.openapi.util.io.FileUtil import org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl +import org.jetbrains.kotlin.gradle.plugin.compareVersionNumbers import org.jetbrains.kotlin.gradle.tasks.* import java.io.File @@ -64,7 +65,7 @@ open class KaptTask : ConventionTask() { val messageCollector = GradleMessageCollector(logger) val outputItemCollector = OutputItemsCollectorImpl() val environment = GradleCompilerEnvironment(kotlinCompileTask.computedCompilerClasspath, messageCollector, outputItemCollector, args) - if (environment.toolsJar == null) { + if (environment.toolsJar == null && !isAtLeastJava9) { throw GradleException("Could not find tools.jar in system classpath, which is required for kapt to work") } @@ -82,4 +83,12 @@ open class KaptTask : ConventionTask() { deleteRecursively() mkdirs() } + + private val isAtLeastJava9: Boolean + get() = compareVersionNumbers(getJavaRuntimeVersion(), "9") >= 0 + + private fun getJavaRuntimeVersion(): String { + val rtVersion = System.getProperty("java.runtime.version") + return if (Character.isDigit(rtVersion[0])) rtVersion else System.getProperty("java.version") + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 3fb65680083..76989f36f21 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -876,7 +876,7 @@ internal fun loadAndroidPluginVersion(): String? { } //Copied from StringUtil.compareVersionNumbers -private fun compareVersionNumbers(v1: String?, v2: String?): Int { +internal fun compareVersionNumbers(v1: String?, v2: String?): Int { if (v1 == null && v2 == null) { return 0 }