JetBrains/intellij-community · error · ExecutionException
build.process.no.javac.found
build.process.no.javac.found
Error message
No system java compiler is provided by the JRE. Make sure tools.jar is present in IntelliJ IDEA classpath.
What it means
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.
Source
Thrown at java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java:1390
// validate tools.jar presence for jdk8 and older
if (!JavaSdkUtil.isJdkAtLeast(projectJdk, JavaSdkVersion.JDK_1_9)) {
@SuppressWarnings("removal") var internalJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk();
if (FileUtil.pathsEqual(projectJdk.getHomePath(), internalJdk.getHomePath())) {
// important: because internal JDK can be either JDK or JRE,
// this is the most universal way to obtain tools.jar path in this particular case
var systemCompiler = ToolProvider.getSystemJavaCompiler();
if (systemCompiler == null) {
//temporary workaround for IDEA-169747
try {
compilerPath = ClasspathBootstrap.getResourcePath(
Class.forName("com.sun.tools.javac.api.JavacTool", false, BuildManager.class.getClassLoader()));
}
catch (Throwable t) {
LOG.info(t);
}
if (compilerPath == null) {
throw new ExecutionException(JavaCompilerBundle.message("build.process.no.javac.found"));
}
}
else {
compilerPath = ClasspathBootstrap.getResourcePath(systemCompiler.getClass());
}
}
else {
compilerPath = projectJdkType.getToolsPath(projectJdk);
if (compilerPath == null) {
throw new ExecutionException(
JavaCompilerBundle.message("build.process.no.javac.path.found", sdkName, projectJdk.getHomePath()));
}
}
}
vmExecutablePath = projectJdkType.getVMExecutablePath(projectJdk);
project.getService(BuildManagerVersionChecker.class).checkArch(projectJdk.getHomePath());
}View on GitHub (pinned to be881553f2)
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.
Example fix
Set the boot runtime to a JetBrains Runtime (a full JDK) via Help | Find Action | Choose Boot Java Runtime for the IDE.
When it happens
Trigger: The in-process Java compiler cannot be obtained because ToolProvider.getSystemJavaCompiler() returns null.
Common situations: The IDE or build process is running on a JRE (or a custom runtime without jdk.compiler) so javax.tools.JavaCompiler is unavailable.
AI-assisted analysis of JetBrains/intellij-community@be881553f2 (2026-08-14).
Data as JSON: /api/errors/32e1791f9a37d756.
Report an issue: GitHub.