📄 system.java
字号:
/* libaegisvm - The Aegis Virtual Machine for executing Java bytecode Copyright (C) 2001-2002 Philip W. L. Fong This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*/package java.lang;import aegis.*;import java.io.*;import java.util.*;public final class System { public static final InputStream in; public static final PrintStream out; public static final PrintStream err; private static SecurityManager securityManager; private static Properties properties; static { securityManager = null; properties = getDefaultProperties(); in = new FileInputStream(FileDescriptor.in); out = new PrintStream(new FileOutputStream(FileDescriptor.out)); err = new PrintStream(new FileOutputStream(FileDescriptor.err)); } private System() { } public static void setIn(InputStream is) { SecurityManager m = getSecurityManager(); if (m != null) m.checkPermission(new RuntimePermission("setIO")); throw new FeatureNotYetImplementedError(); } public static void setOut(PrintStream os) { SecurityManager m = getSecurityManager(); if (m != null) m.checkPermission(new RuntimePermission("setIO")); throw new FeatureNotYetImplementedError(); } public static void setErr(PrintStream es) { SecurityManager m = getSecurityManager(); if (m != null) m.checkPermission(new RuntimePermission("setIO")); throw new FeatureNotYetImplementedError(); } public static void setSecurityManager(SecurityManager s) { SecurityManager m = getSecurityManager(); if (m != null) m.checkPermission(new RuntimePermission("setSecurityManager")); securityManager = s; } public static SecurityManager getSecurityManager() { return securityManager; } public static native long currentTimeMillis(); public static native void arraycopy(Object src, int src_position, Object dst, int dst_position, int length); public static native int identityHashCode(Object x); public static Properties getProperties() { SecurityManager m = getSecurityManager(); if (m != null) m.checkPropertiesAccess(); return properties; } public static void setProperties(Properties props) { SecurityManager m = getSecurityManager(); if (m != null) m.checkPropertiesAccess(); properties = props; } public static String getProperty(String key) { return getProperty(key, null); } public static String getProperty(String key, String def) { if (key == null) throw new NullPointerException(); if (key.length() == 0) throw new IllegalArgumentException(); SecurityManager m = getSecurityManager(); if (m != null) m.checkPropertiesAccess(key); if (properties != null) return properties.getProperty(key, def); else if (key.equals("java.library.path")) return getLibraryPath(); else if (key.equals("aegis.library.prefix")) return getLibraryPrefix(); else if (key.equals("aegis.library.suffix")) return getLibrarySuffix(); else if (key.equals("path.separator")) return getPathSeparator(); else if (key.equals("file.separator")) return getFileSeparator(); else if (key.equals("line.separator")) return getLineSeparator(); else if (key.equals("os.name")) return getOsName(); else if (key.equals("os.arch")) return getOsArch(); else if (key.equals("os.version")) return getOsVersion(); else if (key.equals("user.name")) return getUserName(); else if (key.equals("user.home")) return getUserHome(); else if (key.equals("user.dir")) return getUserDir(); else if (key.equals("user.language")) return getUserLanguage(); else if (key.equals("user.region")) return getUserRegion(); else if (key.equals("user.variant")) return getUserVariant(); else return def; } public static String setProperty(String key, String value) { if (key == null) throw new NullPointerException(); if (key.length() == 0) throw new IllegalArgumentException(); SecurityManager m = getSecurityManager(); if (m != null) m.checkPermission(new PropertyPermission(key, "write")); return (String) properties.setProperty(key, value); } /** * \todo Not implemented yet. */ public static void exit(int status) { throw new FeatureNotYetImplementedError(); } public static void gc() { Runtime.getRuntime().gc(); } /** * \todo Not implemented yet. */ public static void runFinalization() { // XXX throw new FeatureNotYetImplementedError(); } public static void load(String filename) { if (filename == null) throw new NullPointerException(); Runtime.load(filename, getCaller(1)); } public static void loadLibrary(String libname) { if (libname == null) throw new NullPointerException(); Runtime.loadLibrary(libname, getCaller(1)); } public static String mapLibraryName(String libname) { String prefix = getProperty("aegis.library.prefix"); String suffix = getProperty("aegis.library.suffix"); return prefix + libname + suffix; } /** * \todo Should urge Classpath development team to remove * this unnecessary bootstrap dependency. */ private static Properties getDefaultProperties() { Properties p = new Properties(); p.setProperty("java.library.path", getLibraryPath()); p.setProperty("aegis.library.prefix", getLibraryPrefix()); p.setProperty("aegis.library.suffix", getLibrarySuffix()); p.setProperty("path.separator", getPathSeparator()); p.setProperty("file.separator", getFileSeparator()); p.setProperty("line.separator", getLineSeparator()); p.setProperty("os.name", getOsName()); p.setProperty("os.arch", getOsArch()); p.setProperty("os.version", getOsVersion()); p.setProperty("user.name", getUserName()); p.setProperty("user.home", getUserHome()); p.setProperty("user.dir", getUserDir()); p.setProperty("user.language", getUserLanguage()); p.setProperty("user.region", getUserRegion()); p.setProperty("user.variant", getUserVariant()); // Common encoding aliases. See gnu.java.io.EncodingManager. p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-1", "8859_1"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-2", "8859_2"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-3", "8859_3"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-4", "8859_4"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-5", "8859_5"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-6", "8859_6"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-7", "8859_7"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-8", "8859_8"); p.setProperty ("gnu.java.io.encoding_scheme_alias.ISO-8859-9", "8859_9"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-1", "8859_1"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-2", "8859_2"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-3", "8859_3"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-4", "8859_4"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-5", "8859_5"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-6", "8859_6"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-7", "8859_7"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-8", "8859_8"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-8859-9", "8859_9"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_1", "8859_1"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_2", "8859_2"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_3", "8859_3"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_4", "8859_4"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_5", "8859_5"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_6", "8859_6"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_7", "8859_7"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_8", "8859_8"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso8859_9", "8859_9"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-1", "8859_1"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-2", "8859_2"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-3", "8859_3"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-4", "8859_4"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-5", "8859_5"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-6", "8859_6"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-7", "8859_7"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-8", "8859_8"); p.setProperty ("gnu.java.io.encoding_scheme_alias.iso-latin-9", "8859_9"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin1", "8859_1"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin2", "8859_2"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin3", "8859_3"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin4", "8859_4"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin5", "8859_5"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin6", "8859_6"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin7", "8859_7"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin8", "8859_8"); p.setProperty ("gnu.java.io.encoding_scheme_alias.latin9", "8859_9"); p.setProperty ("gnu.java.io.encoding_scheme_alias.UTF-8", "UTF8"); p.setProperty ("gnu.java.io.encoding_scheme_alias.utf-8", "UTF8"); return p; } static native String getLibraryPath(); static native String getLibraryPrefix(); static native String getLibrarySuffix(); static native String getFileSeparator(); static native String getPathSeparator(); static native String getLineSeparator(); static native String getOsName(); static native String getOsArch(); static native String getOsVersion(); static native String getUserName(); static native String getUserHome(); static native String getUserDir(); static native String getUserLanguage(); static native String getUserRegion(); static native String getUserVariant(); static native Class getCaller(int i);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -