0
これは私のJavaプロジェクトの構造である:Test.javaの内容ExtClassLoaderでクラスを読み込めないのはなぜですか?
package com.study.test;
public class HelloWorld {}
:
package: com.study.test
---- HelloWorld.java
---- Test.java
HelloWorld.javaの内容
package com.study.test;
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("java.ext.dirs"));
System.out.println(HelloWorld.class.getClassLoader());
}
}
" java.ext.dirs"の値"は次のとおりです。
D:\glassfish4\jdk7\jre\lib\ext;C:\windows\Sun\Java\lib\ext
私はディレクトリにHelloWorld.classをクラスファイルを置く:
D:\glassfish4\jdk7\jre\lib\ext\com\study\test
が、出力" "System.out.println(HelloWorld.class.getClassLoader());
は次のとおりです。
[email protected]
なぜクラスHelloWorldはExtClassLoaderによってロードされていませんか? ExtClassLoaderは、AppClassLoaderの親クラスローダーです。
はここでかなり良い記事だ(あなたのquestinからコピーされたディレクトリが)どのクラスローダは何をすべきか:https://blogs.oracle.com/ sundararajan/entry/understanding_java_class_loading –