diff --git a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt index 724215a5f7a..ec2350f6825 100644 --- a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt +++ b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt @@ -159,6 +159,10 @@ class Kapt3CommandLineProcessor : CommandLineProcessor { } class Kapt3ComponentRegistrar : ComponentRegistrar { + private companion object { + private const val JAVAC_CONTEXT_CLASS = "com.sun.tools.javac.util.Context" + } + fun decodeOptions(options: String): Map { val map = LinkedHashMap() @@ -184,6 +188,13 @@ class Kapt3ComponentRegistrar : ComponentRegistrar { ?: PrintingMessageCollector(System.err, MessageRenderer.PLAIN_FULL_PATHS, isVerbose) val logger = KaptLogger(isVerbose, messageCollector) + try { + Class.forName(JAVAC_CONTEXT_CLASS) + } catch (e: ClassNotFoundException) { + logger.warn("'$JAVAC_CONTEXT_CLASS' class can't be found ('tools.jar' is absent in the plugin classpath). Kapt won't work.") + return + } + val sourcesOutputDir = configuration.get(Kapt3ConfigurationKeys.SOURCE_OUTPUT_DIR)?.let(::File) val classFilesOutputDir = configuration.get(Kapt3ConfigurationKeys.CLASS_OUTPUT_DIR)?.let(::File) val stubsOutputDir = configuration.get(Kapt3ConfigurationKeys.STUBS_OUTPUT_DIR)?.let(::File)