diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 7f0f399..92d0511 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -986,7 +986,7 @@
         "TMP=`mktemp -d /tmp/tmp.XXXXXXXXXX` && " +
         "mkdir $${TMP}/_embedded_binaries/ && " +
         "$(location :bazel/BazelServer) " +
-        "--jvm_flag=-Dio.bazel.UnixFileSystem=0 --batch " +
+        "--jvm_flag=-Dio.bazel.EnableJni=0 --batch " +
         "--install_base=$${TMP} --output_base=$${TMP}/output/ " +
         "help everything-as-html >> $@ 2>/dev/null && " +
         "cat $(location //site:command-line-reference-suffix.html) >> $@"
diff --git a/src/main/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerDarwin.java b/src/main/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerDarwin.java
index 1ada1bf..3cde7f2 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerDarwin.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/LocalHostResourceManagerDarwin.java
@@ -23,7 +23,7 @@
  */
 public class LocalHostResourceManagerDarwin {
   private static final Boolean JNI_UNAVAILABLE =
-      "0".equals(System.getProperty("io.bazel.UnixFileSystem"));
+      "0".equals(System.getProperty("io.bazel.EnableJni"));
   private static final double EFFECTIVE_CPUS_PER_HYPERTHREADED_CPU = 0.6;
 
   private static int getLogicalCpuCount() throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 0a922fc..f11b51a 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -885,7 +885,7 @@
   }
 
   private static FileSystem fileSystemImplementation() {
-    if ("0".equals(System.getProperty("io.bazel.UnixFileSystem"))) {
+    if ("0".equals(System.getProperty("io.bazel.EnableJni"))) {
       // Ignore UnixFileSystem, to be used for bootstrapping.
       return OS.getCurrent() == OS.WINDOWS ? new WindowsFileSystem() : new JavaIoFileSystem();
     }
diff --git a/src/main/java/com/google/devtools/build/lib/unix/NativePosixSystem.java b/src/main/java/com/google/devtools/build/lib/unix/NativePosixSystem.java
index 9834f24..987b345 100644
--- a/src/main/java/com/google/devtools/build/lib/unix/NativePosixSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/unix/NativePosixSystem.java
@@ -28,7 +28,7 @@
   private NativePosixSystem() {}
 
   static {
-    if (!"0".equals(System.getProperty("io.bazel.UnixFileSystem"))) {
+    if (!"0".equals(System.getProperty("io.bazel.EnableJni"))) {
       UnixJniLoader.loadJni();
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/unix/ProcessUtils.java b/src/main/java/com/google/devtools/build/lib/unix/ProcessUtils.java
index 8fe9e35..096a34a 100644
--- a/src/main/java/com/google/devtools/build/lib/unix/ProcessUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/unix/ProcessUtils.java
@@ -24,7 +24,7 @@
   private ProcessUtils() {}
 
   static {
-    if (!"0".equals(System.getProperty("io.bazel.UnixFileSystem"))) {
+    if (!"0".equals(System.getProperty("io.bazel.EnableJni"))) {
       UnixJniLoader.loadJni();
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/util/OsUtils.java b/src/main/java/com/google/devtools/build/lib/util/OsUtils.java
index 6120a42..85c8920 100644
--- a/src/main/java/com/google/devtools/build/lib/util/OsUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/util/OsUtils.java
@@ -45,7 +45,7 @@
   }
 
   private static boolean jniLibsAvailable() {
-    return !"0".equals(System.getProperty("io.bazel.UnixFileSystem"));
+    return !"0".equals(System.getProperty("io.bazel.EnableJni"));
   }
 
   // Force JNI linking at a moment when we have 'installBase' handy, and print
