diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java
index d0a1c71..6a4156a 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java
@@ -28,7 +28,6 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
-
 import javax.lang.model.SourceVersion;
 import javax.tools.DiagnosticListener;
 import javax.tools.JavaCompiler;
@@ -55,8 +54,15 @@
 
   private static final String[] DEFAULT_JAVACOPTS;
   static {
-    List<String> defaultJavacopts = new ArrayList<>(JavaBuilderConfig.defaultJavacOpts());
-    
+    List<String> defaultJavacopts = new ArrayList<>();
+    for (String javacopt : JavaBuilderConfig.defaultJavacOpts()) {
+      if (javacopt.startsWith("-Xep")) {
+        // ignore Error Prone-specific flags accepted by JavaBuilder
+        continue;
+      }
+      defaultJavacopts.add(javacopt);
+    }
+
     // The bootclasspath must be specified both via an invocation option and
     // via fileManager.setLocation(PLATFORM_CLASS_PATH), to work around what
     // appears to be a bug in jdk[6,8] javac.
@@ -145,7 +151,7 @@
    */
   public static JavaCompiler newInstance() {
     try {
-      return newInstance(JAVA_COMPILER_CLASS.newInstance());
+      return newInstance(JAVA_COMPILER_CLASS.getConstructor().newInstance());
     } catch (Exception e) {
       throw new RuntimeException("Cannot get java compiler", e);
     }
@@ -171,7 +177,7 @@
    */
   public static JavaCompiler newInstance(ClassLoader cl) {
     try {
-      return newInstance(getJavaCompilerClass(cl).newInstance());
+      return newInstance(getJavaCompilerClass(cl).getConstructor().newInstance());
     } catch (Exception e) {
       throw new RuntimeException("Cannot get java compiler", e);
     }
