Java的System类

1.获取配置

System.getProperties(); 

结果:

{java.runtime.name=Java(TM) SE Runtime Environment, 
sun.boot.library.path=C:\Program Files\Java\jdk1.7.0_51\jre\bin, 
java.vm.version=24.51-b03, 
maven.multiModuleProjectDirectory=$M2_HOME, 
java.vm.vendor=Oracle Corporation, 
java.vendor.url=http://java.oracle.com/, 
path.separator=;, 
java.vm.name=Java HotSpot(TM) 64-Bit Server VM, 
file.encoding.pkg=sun.io, 
user.country=CN, 
user.script=, 
sun.java.launcher=SUN_STANDARD, 
sun.os.patch.level=,
java.vm.specification.name=Java Virtual Machine Specification, 
user.dir=F:\MyEclipse Blue 2014\global-fairy-demo-jvm, 
java.runtime.version=1.7.0_51-b13, 
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, 
java.endorsed.dirs=C:\Program Files\Java\jdk1.7.0_51\jre\lib\endorsed,
os.arch=amd64, 
java.io.tmpdir=C:\Users\jiao\AppData\Local\Temp\,
line.separator=, 
java.vm.specification.vendor=Oracle Corporation, 
user.variant=, 
os.name=Windows 8, 
sun.jnu.encoding=GBK,
java.library.path=C:\Program Files\Java\jdk1.7.0_51\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk1.7.0_51\bin;C:\Program Files\Java\jdk1.7.0_51\jre\bin;D:\apache-tomcat-7.0.63\lib;D:\apache-tomcat-7.0.63\bin;D:\apache-maven-3.3.3\bin;E:\Program Files\MATLAB\MATLAB Production Server\R2015a\runtime\win64;E:\Program Files\MATLAB\MATLAB Production Server\R2015a\bin;E:\Program Files\MATLAB\MATLAB Production Server\R2015a\polyspace\bin;D:\apache-zookeeper-3.4.8\bin;D:\apache-activemq-5.14.5\bin;d:\Program Files\Git\cmd;D:\Program Files\nodejs\;D:\apache-jmeter-3.2\bin;C:\Users\jiao\AppData\Local\Programs\Python\Python35;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files (x86)\Autodesk\Backburner\;C:\Users\jiao\AppData\Roaming\npm;C:\Users\jiao\AppData\Local\GitHubDesktop\bin;., 
java.specification.name=Java Platform API Specification, 
java.class.version=51.0, 
sun.management.compiler=HotSpot 64-Bit Tiered Compilers, 
os.version=6.2, 
user.home=C:\Users\jiao, user.timezone=, 
java.awt.printerjob=sun.awt.windows.WPrinterJob, 
file.encoding=UTF-8, 
java.specification.version=1.7,
java.class.path=F:\MyEclipse Blue 2014\global-fairy-demo-jvm\target\classes,
user.name=jiao, java.vm.specification.version=1.7,
sun.java.command=org.global.fairy.demo.jvm.classloader_demo.HackSystem,
java.home=C:\Program Files\Java\jdk1.7.0_51\jre, 
sun.arch.data.model=64, 
user.language=zh, 
java.specification.vendor=Oracle Corporation,
awt.toolkit=sun.awt.windows.WToolkit, 
java.vm.info=mixed mode, 
java.version=1.7.0_51, 
java.ext.dirs=C:\Program Files\Java\jdk1.7.0_51\jre\lib\ext;C:\Windows\Sun\Java\lib\ext, 
sun.boot.class.path=C:\Program Files\Java\jdk1.7.0_51\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_51\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_51\jre\classes, 
java.vendor=Oracle Corporation, 
file.separator=\, 
java.vendor.url.bug=http://bugreport.sun.com/bugreport/, 
sun.io.unicode.encoding=UnicodeLittle,
sun.cpu.endian=little, 
sun.desktop=windows, 
sun.cpu.isalist=amd64}
 
 

一个重新System的类(JVM第九章)


package org.global.fairy.demo.jvm.classloader_demo;

import java.io.ByteArrayOutputStream;
import java.io.Console;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.nio.channels.Channel;
import java.util.Map;
import java.util.Properties;

/**
 * 为JavaClass 劫持java.lang.System提供支持 除了out和err外,其余的都直接转发给System处理
 * 
 * @author jiao
 * 
 */
public class HackSystem {

	public final static InputStream in = System.in;

	public static ByteArrayOutputStream buffer = new ByteArrayOutputStream();

	public final static PrintStream out = new PrintStream(buffer);

	public final static PrintStream err = out;

	public static String getBufferString() {
		return buffer.toString();
	}

	public static void clearBuffer() {
		buffer.reset();
	}

	public static void setSecurityManager(final SecurityManager s) {
		System.setSecurityManager(s);
	}

	public static long currentTimeMillis() {
		return System.currentTimeMillis();
	}

	public static void arraycopy(Object src, int srcPos, Object dest,
			int destPos, int length) {
		System.arraycopy(src, srcPos, dest, destPos, length);
	}

	public static int identityHashCode(Object x) {
		return System.identityHashCode(x);
	}

	public static Console console() {
		return System.console();
	}

	public static void exit(int status) {
		System.exit(status);
	}

	public static void gc() {
		System.gc();
	}

	public static Map<String, String> getenv() {
		return System.getenv();
	}

	public static String getenv(String name) {
		return System.getenv(name);
	}

	public static Properties getProperties() {
		return System.getProperties();
	}

	public static String getProperties(String key) {
		return System.getProperty(key);
	}

	public static String getProperties(String key, String def) {
		return System.getProperty(key, def);
	}

	public static Channel inheritedChannel() throws IOException {
		return System.inheritedChannel();
	}

	public static String lineSeparator() {
		return System.lineSeparator();
	}

	public static void load(String filename) {
		System.load(filename);
	}

	public static void loadLibrary(String libname) {
		System.loadLibrary(libname);
	}

	public static void mapLibraryName(String libname) {
		System.mapLibraryName(libname);
	}

	public static long nanoTime() {
		return System.nanoTime();
	}

	public static void runFinalization() {
		System.runFinalization();
	}

	public static void setErr(PrintStream err) {
		System.setErr(err);
	}

	public static void setErr(InputStream in) {
		System.setIn(in);
	}

	public static void setOut(PrintStream out) {
		System.setOut(out);
	}

	public static void setProperties(Properties props) {
		System.setProperties(props);
	}

	public static void setProperties(String key, String value) {
		System.setProperty(key, value);
	}

	public static void setProperties(SecurityManager s) {
		System.setSecurityManager(s);
	}

	public static void main(String[] args) {
		Map<String, String> env = System.getenv();
		System.out.println(env);
		System.out.println(System.getProperties());
	}
}


猜你喜欢

转载自blog.csdn.net/jiao_zg/article/details/79912349