⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.java

📁 一个开源的JAVA虚拟机
💻 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 + -