📄 config.java
字号:
/* * @(#)Config.java 1.7 05/11/30 * * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * -Redistribution of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * -Redistribution in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of contributors may * be used to endorse or promote products derived from this software without * specific prior written permission. * * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that this software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of any * nuclear facility. */package jnlp.sample.JreInstaller;import java.util.ResourceBundle;import java.util.PropertyResourceBundle;import java.lang.reflect.Field;import java.net.URL;import java.util.MissingResourceException;import java.text.MessageFormat;import javax.jnlp.ServiceManager;import javax.jnlp.BasicService;import javax.jnlp.ExtensionInstallerService;import javax.jnlp.DownloadService;import javax.jnlp.UnavailableServiceException;/** Contains configuration information for an * installer. * * Part of the configuration is read as properties * set in the JNLP file - other information is * currently hard-coded as strings - they should * properly be moved to resources. * */public class Config { /** Localization */ static private ResourceBundle _resources = null; /** JNLP services */ static private ExtensionInstallerService _eiService; static private BasicService _basicService; static private DownloadService _downloadService; /** Initialize basic services class */ static private synchronized void initServices() { if (_eiService == null) { try { _eiService = (ExtensionInstallerService)ServiceManager.lookup("javax.jnlp.ExtensionInstallerService"); _basicService = (BasicService)ServiceManager.lookup("javax.jnlp.BasicService"); _downloadService = (DownloadService)ServiceManager.lookup("javax.jnlp.DownloadService"); } catch(UnavailableServiceException use) { Config.trace("Unable to locate service: " + use); } } // We cannot really use this, since it breaks lazy loading. When resources for all locales // are in place it should be ok. Or we need another solution. //_resources = ResourceBundle.getBundle("jnlp/JreInstaller/resources/strings"); try { URL bundle = (new Config()).getClass().getClassLoader().getResource("jnlp/sample/JreInstaller/resources/strings.properties"); _resources = new PropertyResourceBundle(bundle.openStream()); } catch(Throwable t) { Config.trace("Unable to load resources: " + t); } } static public BasicService getBasicService() { if (_basicService == null) { initServices(); } return _basicService; } static public ExtensionInstallerService getInstallService() { if (_eiService == null) { initServices(); } return _eiService; } static public DownloadService getDownloadService() { if (_downloadService == null) { initServices(); } return _downloadService; } /* * Configuration for JNLP file */ static public String getJavaWSVersion() { return System.getProperty("javawebstart.version"); } // Win/Solaris static public String getInstallerResource() { return System.getProperty("installerEntry"); } static public String getLicenseResource() { return System.getProperty("licenseEntry"); } // Win/Solaris static public String getInstallerLocation() { return System.getProperty("installerLocation"); } // Win/Solaris static public String getInstallerVersion() { String ver = System.getProperty("installerVersion"); return (ver != null && ver.trim().length() == 0) ? null : ver; } // Win-only static public String getNativeLibName() { return System.getProperty("lib"); } // Win/Solaris static public String getExecString() { return System.getProperty("execString"); } // Solaris-only static public String getWaitString(int i) { return System.getProperty("waitString." + i); } // Solaris-only static public String getResponseString(int i) { return System.getProperty("responseString." + i); } // Win/Solaris static public String getJavaPath() { return System.getProperty("javaPath"); } // Solaris-only static public boolean isSolarisInstall() { String result = System.getProperty("isSolarisInstall"); return (result != null && result.length() > 0); } static public boolean isWindowsInstall() { String result = System.getProperty("isWindowsInstall"); return (result != null && result.length() > 0); } // Win/Solaris static public boolean isVerbose() { String result = System.getProperty("verbose"); return (result != null && result.length() > 0); } // Win-only static public boolean isMerlin() { String result = System.getProperty("merlin"); return (result != null && result.length() > 0); } // Win-only static public boolean isHopper() { String result = System.getProperty("hopper"); return (result != null && result.length() > 0); } // Win-only static public String getJavaVersion() { return System.getProperty("javaVersion"); } static public String getPlatformVersion() { return System.getProperty("platformVersion"); } // Win-only static public String getMsvcrtVersionMS() { return System.getProperty("msvcrt.versionMS"); } // Win-only static public String getMsvcrtVersionLS() { return System.getProperty("msvcrt.versionLS"); } /* * String resources */ public static String getJavaWSConfirmMessage() { return getString("webstart.msg"); } public static String getJavaWSConfirmTitle() { return getString("webstart.title"); } public static String getRebootMessage() { return getString("reboot.msg"); } public static String getRebootTitle() { return getString("reboot.title"); } public static String getRebootNowString() { return getString("reboot.button.now"); } public static String getRebootLaterString() { return getString("reboot.button.later"); } public static String getLicenseDialogTitle() { return getString("license.title"); } public static String getLicenseDialogQuestionString() { return getString("license.question"); } public static String getLicenseDialogAcceptString() { return getString("license.button.accept"); } public static String getLicenseDialogExitString() { return getString("license.button.exit"); } public static String getWindowTitle() { return getString("window.title"); } public static String getWindowHeading() { return getString("window.heading"); } public static String getWindowLogo() { return "resources/sunlogo.png"; } public static String getWindowStep(int i) { return getString("window.step." + i); } public static String getWindowAbortButton() { return getString("window.button.abort"); } public static int getWindowAbortMnemonic() { return getMnemonic("window.button.abort.key"); } public static String getWindowHiddenLabel() { return getString("window.hiddenLabel"); } public static String getWindowStepProgress(int step, int percent) { Object args[] = { getWindowStep(step), new Integer(percent) }; return applyPattern("window.step.progress", args); } public static String getWindowStepWait(int step) { Object args[] = { getWindowStep(step) }; return applyPattern("window.step.wait", args); } /** Resource bundle stuff */ // Returns a string from the resources static private String getString(String key) { try { return _resources.getString(key); } catch (MissingResourceException mre) { return "Missing resource for: " + key; } } static private int getMnemonic(String key) { String resource = getString(key); if (resource != null && resource.startsWith("VK_")) { try { Class keyEventClazz= Class.forName("java.awt.event.KeyEvent"); Field field = keyEventClazz.getDeclaredField(resource); int value = field.getInt(null); return value; } catch (Exception e) { Config.trace("getMnemonic: " + e); } } return 0; } /** Helper function that applies the messageArguments to a message from the resource object */ static private String applyPattern(String key, Object[] messageArguments) { String message = getString(key); MessageFormat formatter = new MessageFormat(message); String output = formatter.format(message, messageArguments); return output; } /** debugging method. No localized */ static public void trace(String msg) { if (isVerbose()) { System.out.println(msg); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -