によってロードされていない私は、カスタムクラスローダを書いて、i'haveは、クラスのほとんどがロードされているパラメータJavaのカスタムクラスローダ:いくつかのクラスは、私のクラスローダ
-Djava.system.class.loader=MyClassLoader
を使用して、デフォルトのクラスローダーようにそれを設定私のクラスローダーによって、しかしいくつかのクラスは、なぜですか? このクラスは外部のjarファイルです。私はAが私のクラスローダによってロードされるクラスを期待するが、これは起こらないで、なぜ:
UPDATE ここでは一例
public class Main{
public static void main(String[] args) {
try{
// A simple class loader, ovveride loadClass
// method and print in stdout the name of the class loaded.
MyClassLoader classLoader=new MyClassLoader(MyClassLoader.class.getClassLoader());
Class init=classLoader.loadClass("Initializer");
Object instance=init.newInstance();
init.getMethod("init").invoke(instance);
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
public class A{
public A() {
System.out.println("Im A");
}
}
public class Initializer {
public void init() {
A a=new A();
}
}
問題がありますか?
UPDATE
はとにかく、私はクラスコードを暗号化し、実行時にそれを解読したいbecouse、私のクラスローダを持つすべての私のクラスをロードします。 どうすれば、すべてのクラスに対してデフォルトのクラスローダーとしてクラスローダーを使用できますか?
ありがとうございました。
あなたのCLによって読み込まれないクラスはありますか? – biziclop
私の水晶球は、この特定のケースでClassNotFoundExceptionが発生したように輝きますが、私のjava woodoo人形はstacktraceなしで続行を拒否します:) – Osw
あなたのクリスタル球は壊れています。私は例外もありません。私のクラスローダーによってロードされていません。 (私はクラスをロードするときにstdoutで印刷します) – blow