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命令行运行参数说明大全(偷来的)

你可能感兴趣的:(jvm,classpath)