2012-02-10 9 views
0

私はクラスパス内のjarファイルからSystem ClassLoaderを実行時にロードする必要がありますが、試行するたびにClassNotFoundExceptionが発生します。 System ClassLoaderでは、x.y.classineed(xとyはパッケージ)か、pathtox.x.y.classineedのような何かをする必要がありますか?これを行うことも可能ですか?Java System ClassLoader(URLClassLoaderはありません)を使用してクラスパスのjarファイルからクラスをロードする方法はありますか?

+1

* "クラスパスのjarからSystem ClassLoaderを使用して実行時にクラスをロードする必要があります。"実際に達成しようとしていることは何ですか? –

答えて

1

JARは、CLASSPATH内にあってはいけません。

これはうまくいきます:私はCLASSPATHにJDOM JARを持っています。

package cruft; 

/** 
* ClassLoaderDemo 
* @author Michael 
* @since 2/9/12 7:09 PM 
* @link http://stackoverflow.com/questions/9220887/java-how-to-load-classes-out-of-a-jar-in-the-classpath-with-the-system-classload 
*/ 
public class ClassLoaderDemo { 
    public static void main(String[] args) { 
     try { 
      ClassLoader classLoader = ClassLoaderDemo.class.getClassLoader(); 
      if (classLoader != null) { 
       Class clazz = classLoader.loadClass("org.jdom.Document"); 
       System.out.println(clazz.getName()); 
      } 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

+1クラスのClassLoaderを使用しています。 Systemクラスローダーを使用することは決して正しい決断ではありません。 – Dev