2009-08-06 4 views
1

.jarファイルからクラスを取得しようとして失敗しました。 .jarはC:\ CTF.jarにあり、CTFという名前のフォルダに.classファイルのCaptureTheFlagRulesを含んでいます。次のコードは動作しません:jarからクラスを抽出する際のClassNotFound例外

try { 
    File jarFile = new File("C:\\CTF.jar"); 
    URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[] 
     { jarFile.toURI().toURL() }, getClass.getClassLoader()); 
    Class<?> unknownClass = Class.forName("CaptureTheFlagRules", 
     true, urlClassLoader); 
    .... 
} catch (MalformedURLException e) { 
} catch (ClassNotFoundException e) { 
} 

コードはにforName()の呼び出しでClassNotFoundExceptionがスルー。私のクラスを取得するには何が必要ですか?

+0

通常はクラスパスに追加して使用できますか? –

+3

CaptureTheFlagRulesクラスは名前空間内にありますか?その場合は、Class.forName()呼び出しに名前空間を追加する必要があります。例:Class.forName( "com.galecki.CaptureTheFlagRules") – AgileJon

答えて

2

試してみてください。

Class<?> unknownClass = Class.forName("CTF.CaptureTheFlagRules", 
    true, urlClassLoader); 

それはCTFフォルダ内なら、それは、CTFパッケージにはおそらくです。

関連する問題