JDK默认的三种路径
代码:
public class JVMTest {
??? public static void main(String[] args) {
??????? String bootPath = System.getProperty("sun.boot.class.path");
??????? String extPath = System.getProperty("java.ext.dirs");
??????? String userPath = System.getProperty("user.dir");
??????? System.out.println(bootPath);
??????? System.out.println(extPath);
??????? System.out.println(userPath);
??? }
}
?
输出结果:
C:\Program Files\Java\jdk1.7.0_25\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_25\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_25\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.7.0_25\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_25\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_25\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_25\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_25\jre\classes
C:\Program Files\Java\jdk1.7.0_25\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
D:\IdeaProjects\requestsimulator
?
分析:
??????? 虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:
Bootstrap classes,Extension classes,User classes。
Bootstrap 中的路径是虚拟机自带的jar或zip文件,虚拟机首先搜索这些包文件,用System.getProperty("sun.boot.class.path")可得到虚拟机搜索的包名。
Extension是位于jre"lib"ext目录下的jar文件,虚拟机在搜索完Bootstrap后就搜索该目录下的jar文件。用System. getProperty("java.ext.dirs”)可得到虚拟机使用Extension搜索路径。
System.getProperty("user.dir")可以得到用户当前路径。
User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。
?
?
参考资料:http://xinklabi.iteye.com/blog/837435
Java命令行运行参数说明大全(偷来的)