2009-08-06 7 views
1

Ich habe erfolglos versucht, eine Klasse aus einer JAR-Datei zu erhalten. Die .jar befindet sich unter C: \ CTF.jar und enthält eine .class-Datei CaptureTheFlagRules in einem Ordner namens CTF. Der folgende Code funktioniert nicht:ClassNotFound-Ausnahme beim Extrahieren einer Klasse aus einem Jar

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) { 
} 

Der Code Durchführung eine ClassNotFoundException am forName() -Aufruf. Was muss ich tun, um meine Klasse zu bekommen?

+0

Warum fügen Sie es nicht einfach zu Ihrem Klassenpfad hinzu, damit Sie es normal verwenden können? –

+3

Befindet sich die CaptureTheFlagRules-Klasse in einem Namespace? Wenn dies der Fall ist, müssen Sie den Namespace dem Aufruf Class.forName() hinzufügen. ex: Class.forName ("com.galecki.CaptureTheFlagRules") – AgileJon

Antwort

2

Versuchen:

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

Wenn es in dem CTF-Ordner ist, ist es wahrscheinlich in dem CTF-Paket.

Verwandte Themen