mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
making build work with java 9ea (IDEA-134285)
This commit is contained in:
@@ -104,8 +104,7 @@ import org.jetbrains.jps.cmdline.ClasspathBootstrap;
|
||||
import org.jetbrains.jps.incremental.Utils;
|
||||
import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
|
||||
|
||||
import javax.tools.JavaCompiler;
|
||||
import javax.tools.ToolProvider;
|
||||
import javax.tools.*;
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -951,7 +950,10 @@ public class BuildManager implements ApplicationComponent{
|
||||
}
|
||||
|
||||
cmdLine.addParameter("-Djava.awt.headless=true");
|
||||
cmdLine.addParameter("-Djava.endorsed.dirs=\"\""); // turn off all jre customizations for predictable behaviour
|
||||
if (sdkVersion != null && sdkVersion.ordinal() < JavaSdkVersion.JDK_1_9.ordinal()) {
|
||||
//-Djava.endorsed.dirs is not supported in JDK 9+, may result in abnormal process termination
|
||||
cmdLine.addParameter("-Djava.endorsed.dirs=\"\""); // turn off all jre customizations for predictable behaviour
|
||||
}
|
||||
if (IS_UNIT_TEST_MODE) {
|
||||
cmdLine.addParameter("-Dtest.mode=true");
|
||||
}
|
||||
|
||||
@@ -41,7 +41,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
* Date: 1/21/12
|
||||
*/
|
||||
public class JavacMain {
|
||||
private static final boolean IS_VM_6_VERSION = System.getProperty("java.version", "1.6").contains("1.6");
|
||||
private static final String JAVA_VERSION = System.getProperty("java.version", "");
|
||||
|
||||
//private static final boolean ECLIPSE_COMPILER_SINGLE_THREADED_MODE = Boolean.parseBoolean(System.getProperty("jdt.compiler.useSingleThread", "false"));
|
||||
private static final Set<String> FILTERED_OPTIONS = new HashSet<String>(Arrays.<String>asList(
|
||||
"-d", "-classpath", "-cp", "-bootclasspath"
|
||||
@@ -75,7 +76,9 @@ public class JavacMain {
|
||||
final List<JavaSourceTransformer> transformers = getSourceTransformers();
|
||||
|
||||
final boolean usingJavac = compilingTool instanceof JavacCompilerTool;
|
||||
final JavacFileManager fileManager = new JavacFileManager(new ContextImpl(compiler, diagnosticConsumer, outputSink, canceledStatus, usingJavac), transformers);
|
||||
final JavacFileManager fileManager = new JavacFileManager(
|
||||
new ContextImpl(compiler, diagnosticConsumer, outputSink, canceledStatus, canUseOptimizedFileManager(compilingTool)), transformers
|
||||
);
|
||||
|
||||
if (!platformClasspath.isEmpty()) {
|
||||
// for javac6 this will prevent lazy initialization of Paths.bootClassPathRtJar
|
||||
@@ -188,6 +191,12 @@ public class JavacMain {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean canUseOptimizedFileManager(JavaCompilingTool compilingTool) {
|
||||
// since java 9 internal API's used by the optimizedFileManager have changed
|
||||
return compilingTool instanceof JavacCompilerTool &&
|
||||
(JAVA_VERSION.contains("1.6") || JAVA_VERSION.contains("1.7") || JAVA_VERSION.contains("1.8"));
|
||||
}
|
||||
|
||||
private static void handleCancelException(DiagnosticOutputConsumer diagnosticConsumer) {
|
||||
diagnosticConsumer.report(new PlainMessageDiagnostic(Diagnostic.Kind.OTHER, "Compilation was canceled"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user