{"record":{"id":"32e1791f9a37d756","repo":"JetBrains/intellij-community","slug":"build-process-no-javac-found","errorCode":"build.process.no.javac.found","errorMessage":"No system java compiler is provided by the JRE. Make sure tools.jar is present in IntelliJ IDEA classpath.","messagePattern":"No system java compiler is provided by the JRE\\. Make sure tools\\.jar is present in IntelliJ IDEA classpath\\.","errorType":"exception","errorClass":"ExecutionException","httpStatus":null,"severity":"error","filePath":"java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java","lineNumber":1390,"sourceCode":"\n      // validate tools.jar presence for jdk8 and older\n      if (!JavaSdkUtil.isJdkAtLeast(projectJdk, JavaSdkVersion.JDK_1_9)) {\n        @SuppressWarnings(\"removal\") var internalJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk();\n        if (FileUtil.pathsEqual(projectJdk.getHomePath(), internalJdk.getHomePath())) {\n          // important: because internal JDK can be either JDK or JRE,\n          // this is the most universal way to obtain tools.jar path in this particular case\n          var systemCompiler = ToolProvider.getSystemJavaCompiler();\n          if (systemCompiler == null) {\n            //temporary workaround for IDEA-169747\n            try {\n              compilerPath = ClasspathBootstrap.getResourcePath(\n                Class.forName(\"com.sun.tools.javac.api.JavacTool\", false, BuildManager.class.getClassLoader()));\n            }\n            catch (Throwable t) {\n              LOG.info(t);\n            }\n            if (compilerPath == null) {\n              throw new ExecutionException(JavaCompilerBundle.message(\"build.process.no.javac.found\"));\n            }\n          }\n          else {\n            compilerPath = ClasspathBootstrap.getResourcePath(systemCompiler.getClass());\n          }\n        }\n        else {\n          compilerPath = projectJdkType.getToolsPath(projectJdk);\n          if (compilerPath == null) {\n            throw new ExecutionException(\n              JavaCompilerBundle.message(\"build.process.no.javac.path.found\", sdkName, projectJdk.getHomePath()));\n          }\n        }\n      }\n\n      vmExecutablePath = projectJdkType.getVMExecutablePath(projectJdk);\n      project.getService(BuildManagerVersionChecker.class).checkArch(projectJdk.getHomePath());\n    }","sourceCodeStart":1372,"sourceCodeEnd":1408,"githubUrl":"https://github.com/JetBrains/intellij-community/blob/be881553f2a76ac8b4ea53950d93f0de78295c19/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java#L1372-L1408","documentation":"Error \"No system java compiler is provided by the JRE. Make sure tools.jar is present in IntelliJ IDEA classpath.\" thrown in JetBrains/intellij-community.","triggerScenarios":"The in-process Java compiler cannot be obtained because ToolProvider.getSystemJavaCompiler() returns null.","commonSituations":"The IDE or build process is running on a JRE (or a custom runtime without jdk.compiler) so javax.tools.JavaCompiler is unavailable.","solutions":["Run the IDE on a full JDK instead of a stripped JRE so the system Java compiler is available.","For legacy JDK 8 setups, ensure tools.jar from the JDK is on the IDE classpath."],"exampleFix":"Set the boot runtime to a JetBrains Runtime (a full JDK) via Help | Find Action | Choose Boot Java Runtime for the IDE.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"be881553f2a76ac8b4ea53950d93f0de78295c19","analyzedAt":"2026-08-14T14:13:06.425Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}