Edit C:\Program Files\Java\jdk1.8.0_121\com\sun\javafx\runtime\SystemProperties.java
/* * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.javafx.runtime; import java.io.InputStream; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.Hashtable; public class SystemProperties { /** * JavaFX System Properties table. * First column represents javafx property name with "javafx" prefix stripped off. * Second column represents underlying runtime platform equivalent. * "jfx_specific" value in the runtime platform equivalent field indicates the property is JavaFX specific. * Empty string in the runtime platform equivalent field indicates thete is no equivalent property for given platform. */ private static final String[] sysprop_table = { /*"javafx.*/"application.codebase", "jfx_specific", /*"javafx.*/"debug", "javafx.debug" }; /** * JavaFX Specific System Properties table. * First column represents javafx environment specific property name with "javafx" prefix stripped off. * Second column represents value of the property */ private static final String[] jfxprop_table = { /*"javafx.*/"application.codebase", "", }; private static final Hashtable sysprop_list = new Hashtable(); private static final Hashtable jfxprop_list = new Hashtable(); private static final String versionResourceName = "/com/sun/javafx/runtime/resources/version.properties"; private static boolean isDebug; static { AccessController.doPrivileged((PrivilegedAction) () -> { addProperties (sysprop_table, false); addProperties (jfxprop_table, true); setVersions(); isDebug = "true".equalsIgnoreCase(getProperty("javafx.debug")); return null; }); } /* * Populate our well known version strings */ private static void setVersions() { int size; InputStream is = SystemProperties.class.getResourceAsStream(versionResourceName); try { size = is.available(); byte[] b = new byte[size]; int n = is.read(b); String inStr = new String(b, "utf-8"); SystemProperties.setFXProperty("javafx.version", getValue(inStr, "release=")); SystemProperties.setFXProperty("javafx.runtime.version", getValue(inStr, "full=")); } catch (Exception ignore) { } } /* * Returns a value given a name */ private static String getValue(String toSearch, String name) { String s = toSearch; int index; while ((index = s.indexOf(name)) != -1) { s = s.substring(index); if ((index = s.indexOf(0x0A))!= -1) { return (s.substring(name.length(), index)).trim(); } return (s.substring(name.length(), s.length())).trim(); } return "unknown"; } /** * Registers a statically allocated System Properties table * Once registered properties listed in the table are availabe for inquiry through FX.getProperty(). * Table is defined as a String array with JavaFX property name followed by property value or property mapping identifier * depending on whether the table contains JavaFX specific properties or not. * Note that JavaFX property names have "javafx" stripped out to optimize table lookup. * The following identifiers are available: * </p> * 1. Underlying runtime platform property name. When listed, FX.getProperty() will invoke System.getProperty() * method to retrieve property value. * example: * {"version", "java.version"} * </p> * 2. "javafx_specific". When listed indicates there is no association between the property and underlying runtime * platform. Rather the property is JavaFX specific. In that case another table needs to be provided with values * for all JavaFX specific properties. JavaFX specific properties table is a string array containing property name * and corresponding property value. * example: * {"hw.radio", "none"} * </p> * 3. Empty string. When listed, the meaning there is no association between the property and underlying runtime * platform nor the property is JavaFX specific. FX.getProperty() invoked on that property returns null. * example: * {"supports.mixing", "none"} * @param table System Properties table * @param jfx_specific Indicates the table contains JavaFX specific properties */ public static void addProperties (String[] table, boolean jfx_specific) { if (table == null) return; Hashtable props; if (jfx_specific) { props = jfxprop_list; } else { props = sysprop_list; } for (int i=0; i<table.length; i+=2) { props.put(table[i], table[i+1]); } } public static String getProperty (String key) { Hashtable props = sysprop_list; final String prefix = "javafx."; if (key == null) return null; if (key.startsWith(prefix)) { key = key.substring(prefix.length()); } else { return null; } final String found = (String)props.get(key); if ((found == null) || (found.equals(""))) { // No Java Runtime Environment property equivalent is found return null; } // Now check if the property is JFX specific and has no association with Runtime Environment if (found.equals("jfx_specific")) { props = jfxprop_list; return (String)props.get(key); } else { return System.getProperty(found); } } /* * Removes the property from JavaFX System Properties list * @param key JavaFX System Property name */ public static void clearProperty (String key) { if (key == null) return; Hashtable props = sysprop_list; final String prefix = "javafx."; // Remove "javafx." prefix from the key if (key.startsWith(prefix.toString())) { key = key.substring(prefix.length()); } else { return; } String value = (String)props.get(key); if (value == null) return; props.remove(key); // Remove the prop from the JavaFX specific properties table if applicable if (value.equals("jfx_specific")) { props = jfxprop_list; props.remove(key); } } /** * Adds a new JavaFX specific property or modifyies existing property value. * Note that there is no method in this class to set underlying platform * property as MIDP doesn't support System.setProperty() method. * @param key JavaFX Property name * @param value Property value * @throws NullPointerException if key or value is null */ public static void setFXProperty (String key, final String value) { Hashtable props = sysprop_list; final String prefix = "javafx."; // Remove "javafx." prefix from the key if (key.startsWith(prefix)) { key = key.substring(prefix.length()); String k = (String)props.get(key); // Add new property to the list if (k == null) { props.put(key, "jfx_specific"); props = jfxprop_list; props.put(key, value); } else if (k.equals("jfx_specific")) { // Change existing property value props = jfxprop_list; props.put(key, value); if (codebase.equals(prefix+key)) codebase_value = value; } } } public static boolean isDebug() { return isDebug; } public static String getCodebase() { return codebase_value; } public static void setCodebase(String value) { if (value == null) value = ""; codebase_value = value; setFXProperty("javafx.application.codebase", value); } private static String codebase_value; public static final String codebase = "javafx.application.codebase"; }
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de