Frage

Ich habe eine Anwendung, die über Java-Klassen erweiterbar ist, die zu einer bestimmten Schnittstelle entsprechen. Wenn ich das Programm von der Kommandozeile Klassen laufen, kann ich das Add-on-Klassen instanziiert mit:

Class.forName("myAddon").newInstance();

Allerdings, wenn ich die Anwendung JAR-Datei (die Hauptklasse richtig einstellen), erhalte ich eine Klasse nicht gefunden Ausnahme. Kann jemand etwas Licht auf, was hier vor sich geht?

TIA, Adam

War es hilfreich?

Lösung

Ich habe es geschafft, dies zum Laufen bringen eine URLClassLoader mit Angabe der Suchpfad das aktuelle Verzeichnis wie folgt aussehen:

URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});

Vielen Dank für Ihre Hilfe,

Adam

Andere Tipps

Die Klasse Sie suchen ist nicht auf dem Classpath. Wenn es in einem Verzeichnis

d. MyClass.class MyJar.jar

Sie müssen tun:

java -classpath . -jar MyJar.jar

Aber wirklich brauchen wir mehr Informationen, die Frage zu beantworten. Was ist die Hauptklasse im jar-Manifest auf? Was ist Ihr Classpath? Wie bestimmen Sie, welche Klasse zu laden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top