Ich mache ein kleines Konsolenprogramm, das alle Klassendateien in einem Ordner als "Plugins" lädt, so dass das Programm durch Hinzufügen neuer Klassen anpassbar ist.Dynamisch laden Klassen, die Klassenpfadreferenz in Java benötigen
Hier ist das Problem: Ein Plugin verwendet die SQL-Bibliothek, um ein einfaches Abfragesystem für eine Datenbank bereitzustellen. Um den JDBC-Treiber enthalten sie den folgenden Code hat:
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
ich es Hinzufügen der Treiber jar zu dem Classpath zusammengestellt:
javac -classpath ./libs/mysql-connector-java-5.1.40-bin.jar sqlquery.java
Wenn ich die Haupt Glas laufen, die das Plugin-.class- lädt Datei, obwohl ich den Treiber jar im Programm Classpath angeben, wirft es eine ClassNotFoundException
beim Aufruf der com.mysql.jdbc.Driver
Klasse.
Was kann ich tun?
Sie benötigen Sie die Bibliothek auf dem Klassenpfad, wenn Sie das Programm ebenfalls ausführen. –
Ich mache das, ich führe das Programm über den Shell-Befehl 'java -classpath './plugins/libs/mysql-connector-java-5.1.40-bin.jar" -jar main.jar' –