Dynamisches Nachladen von JARs (Plugin)

Status
Nicht offen für weitere Antworten.
C

Caramoon

Gast
Problematik:
Meine Datei "Beipiel.jar" liegt im Ordner "bin/plugin" und enthält die Klasse "Beispiel.Example.class".
Das Problem ist, dass sich die Example Klasse zur Laufzeit nicht finden lässt.

Es wird immer eine ClassNotFoundException ausgegeben.

Die Pathangaben habe ich schon in allen Variationen durchgespielt. Dort kann der Fehler also nicht liegen.
Kopiere ich die Klasse einfach nur ins Verzeichnis funktioniert es sogar.
ALSO WIE KANN ICH DIE JAR FILE DYNAMISCH EINBINDEN (import geht ja nicht!)???

Quelltextausschnitt:
Code:
...
static AbstractDocument ACTIVE_DOCUMENT;
...
public static void doNewDocument(String type) {
   try {
      ACTIVE_DOCUMENT = (AbstractDocument) newInstance("bin/plugin/",
      "Beispiel.Document");
   } catch (Exception e) {
      e.printStackTrace();
   }
}

protected static Object newInstance(String path, String classname)
      throws Exception {
   URL url = new File(path).toURI().toURL();
   URLClassLoader cl = new URLClassLoader(new URL[] { url });
   Class<?> c = cl.loadClass(classname);		
   return c.newInstance();
}
...
[/list]
 
W

Woody

Gast
Hallo,
ich habe das gleiche Problem, dass ich Klassen dynamisch zur Laufzeit hinzufügen will.
Ich arbeite an einem Programm welches über Plugins, in Form von jar Containern, verschiedene Funktionen einbinden soll. Jenachdem wie viele Plugins im entsprechenden Ordner sind, soll von jeder enthaltenen Klasse eine neue Instance gebildet werden und im Hauptprogramm ein neuer Reiter im JTabbedPane eingefügt werden, dessen Inhalt im Plugin festgelegt ist.
Frage gibt es hier im Forum schon irgendwo ne Lösung (meine Suche blieb erfolglos) oder hat jemand ne Lösung?
Danke im voraus!
 
W

Woody

Gast
Danke, es funktioniert jetzt Klassen zur Laufzeit einzubinden.
Jedoch hab ich noch ein weiteres Problem. In den jar-Files soll sich außerdem eine Propertiesdatei befinden, welche ich auslesen möchte. Ich bekomme nur leider immer eine Fehlermeldung java.io.FileNotFoundException für die config.properties

Code:
public void loadPlugins() {
   Properties config = new Properties();
   File dir = new File(pluginDir);
   String[] plugins = dir.list();
   for ( int i = 0; i < (plugins.length); i++) {
     String plugin = pluginDir + plugins[i];
     String conf = plugin + "/" + "config.properties";
     System.out.println("Hier der Pfad zur config: " + conf);
     try {
       config.load(new FileInputStream(conf));
       System.out.println("Die Conf wurde eingeladen");
    } catch (Exception e1) {
      System.out.println("Fehler");
      e1.printStackTrace();
    }
    String classname = config.getProperty("classname");
    try {
      Object panel = getPlugin(pluginDir, classname );
      fillTabbedPane(panel,config);
    } catch (Exception e) {
      System.out.println("ERROR: Could not load the Plugin: " + e.toString());
      return;
    }
  }
}
Falls ich die *.class und die config.properties in einen einfachen ordner lege funtkioniert alles. Frage also: muss ich noch etwas beachten, wenn ich ne datei aus der jar einlesen möchte?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Unterschied: Polymorphie und Dynamisches Binden Allgemeine Java-Themen 8
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
N Eclipse Dynamisches-Web-Project auf anderen Rechner transportieren Allgemeine Java-Themen 5
looparda Dynamisches Konsolenprogramm Allgemeine Java-Themen 3
T Dynamisches p:graphicimage im Datagrid Allgemeine Java-Themen 7
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
P Dynamisches Binden Allgemeine Java-Themen 7
X Dynamisches hinzufügen von Panles Allgemeine Java-Themen 4
A Dynamisches Enum? Allgemeine Java-Themen 2
S dynamisches Array für Primfaktorzerlegung Allgemeine Java-Themen 13
S Dynamisches Manipulieren/Laden von Klassen Allgemeine Java-Themen 4
Z Dynamisches JPanel Allgemeine Java-Themen 10
hdi Dynamisches Instantiieren (Reflections) Allgemeine Java-Themen 4
H2SO3- dynamisches anlegen der dimensionaltität eines arrays Allgemeine Java-Themen 6
reibi Klassenpfad mal anders - dynamisches Laden einer Klasse Allgemeine Java-Themen 7
lumo "Exzessiv" dynamisches generieren Allgemeine Java-Themen 6
P dynamisches Array / Vector Allgemeine Java-Themen 2
R Dynamisches Laden von JNI-Bibliotheken Allgemeine Java-Themen 4
N Mehrdimensionales dynamisches Array Allgemeine Java-Themen 3
T Dynamisches laden von java Klassen Allgemeine Java-Themen 2
B Dynamisches Linken Allgemeine Java-Themen 15
M Dynamisches ausführen von methoden unbekannter klassen Allgemeine Java-Themen 6
V dynamisches laden von klassen Allgemeine Java-Themen 8
S Dynamisches Casten Allgemeine Java-Themen 5
M Statisches und dynamisches Binden? Allgemeine Java-Themen 2
S Dynamisches Feld generieren. Allgemeine Java-Themen 10
E Dynamisches Instanziieren Allgemeine Java-Themen 2
B dynamisches Laden aller Klassen in einem Ordner ?? Allgemeine Java-Themen 5
windl Problem mit externen Nachladen von Jars Allgemeine Java-Themen 10
F Classpath Programmteile zur Laufzeit nachladen Allgemeine Java-Themen 6
I Nachladen von Jar-Dateien Allgemeine Java-Themen 2
T Serialisiertes Objekt über Socket nachladen Allgemeine Java-Themen 8
G Daten in / für JTable beim Scrollen nachladen? Allgemeine Java-Themen 5
M Klassen von ausserhalb des Jars per Reflection nachladen Allgemeine Java-Themen 2
H geänderte Klassen nachladen, ohne JVM neu zu starten Allgemeine Java-Themen 21
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
RalleYTN Java 9 Module mit Dependency auf Pre-Java 9 JARS Allgemeine Java-Themen 2
S Maven Jars dynamisch laden / Plugin-Struktur erstellen Allgemeine Java-Themen 14
H NetBeans geotools 15 oder 16 - welche Abhängingkeiten gibt es? Welche Jars brauche ich? Allgemeine Java-Themen 4
B Datei innerhalb des JARs von einer statischen Methode aufrufen Allgemeine Java-Themen 4
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
J Jars in unterschiedlichen Versionen Allgemeine Java-Themen 14
X Neuerdings ein Problem mit dem Starten von Jars Allgemeine Java-Themen 5
A Jars oder JNLPs aus java code in gleicher JVM starten Allgemeine Java-Themen 2
M Webstart Exception trotz signierten JARs Allgemeine Java-Themen 3
M Klassen in vielen Jars ermitteln Allgemeine Java-Themen 2
C Runnable Jars Allgemeine Java-Themen 2
M JARS in JAR? Allgemeine Java-Themen 4
D Packages in ausführbaren Jars Allgemeine Java-Themen 4
KrokoDiehl Viele JARs und deren Resourcen Allgemeine Java-Themen 9
G Output eines über Runtime.getRuntime.exec gestarteten Jars Allgemeine Java-Themen 6
R Kann ich die jars eines Applets auf verschiedenen Domains hosten? Allgemeine Java-Themen 2
Y JARs austauschen zur Laufzeit Allgemeine Java-Themen 11
D Ahängige Bibliotheken (JARs) ermitteln Allgemeine Java-Themen 6
C Tool zum verkleinern der Jars? Allgemeine Java-Themen 23
V Anderes tmp-dir bei jars? Allgemeine Java-Themen 2
G Applet mit meheren JARs Allgemeine Java-Themen 2
E JFreeChart jars mit in meine Jar packen Allgemeine Java-Themen 6
DeeDee0815 Resourcen in JARs auslagern Allgemeine Java-Themen 4
M Klassen eines Jars auslesen Allgemeine Java-Themen 3
T Wo kann ich einzelne JARs herunterladen Allgemeine Java-Themen 3
H externe JARs in eigenem Programm-Jar einbinden. Allgemeine Java-Themen 5
N Main-Klasse wird beim Aufruf des JARs nicht gefunden Allgemeine Java-Themen 8
M Probleme mit JARs Allgemeine Java-Themen 7
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
J jars Allgemeine Java-Themen 4
A signed jars gegen keystore "authentifizieren" Allgemeine Java-Themen 7
O Externe Jars in eigene JAr packen in Eclipse Allgemeine Java-Themen 5
A Verzeichnis auflisten - auch innerhalb eines Jars Allgemeine Java-Themen 6
H Jars gehen nicht Allgemeine Java-Themen 6
J Mal wieder jars Allgemeine Java-Themen 2
G Suche Programm um mehrere Jars in eines zu integrieren Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben