< prev index next >

langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/util/JDK9Wrappers.java

Print this page

        

@@ -250,6 +250,42 @@
                     throw new Abort(ex);
                 }
             }
         }
     }
+
+
+    /**
+     * Helper class for new method in jdk.internal.misc.VM.
+     */
+    public static final class VMHelper {
+        public static final String VM_CLASSNAME = "jdk.internal.misc.VM";
+
+        @SuppressWarnings("unchecked")
+        public static String[] getRuntimeArguments() {
+            try {
+                init();
+                Object result = getRuntimeArgumentsMethod.invoke(null);
+                return (String[])result;
+            } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
+                    | SecurityException ex) {
+                throw new Abort(ex);
+            }
+        }
+
+        // -----------------------------------------------------------------------------------------
+
+        private static Class<?> vmClass = null;
+        private static Method getRuntimeArgumentsMethod = null;
+
+        private static void init() {
+            if (vmClass == null) {
+                try {
+                    vmClass = Class.forName(VM_CLASSNAME, false, null);
+                    getRuntimeArgumentsMethod = vmClass.getDeclaredMethod("getRuntimeArguments");
+                } catch (ClassNotFoundException | NoSuchMethodException | SecurityException ex) {
+                    throw new Abort(ex);
+                }
+            }
+        }
+    }
 }
< prev index next >