Ich hatte eine Frage über den Unterschied der Ausführung von zwei Befehlen im Zusammenhang mit Jython. Ich habe Probleme mit Classpath- und Db-Treibern.Jython-Problem mit Klassenpfaden
Was funktioniert für mich ist dabei die folgende: jython -J-Classpath ../lib/mysql-connector-java-5.1.7.jar test.py/home/test/Daten
ausgeführt wird, Befehl alles läuft wie erwartet, also wollte ich meine Skripte kombinieren, um als jar ausgeführt zu werden, so dass jython nicht benötigt wird. Sobald ich fertig bin, mein Krug zu erstellen, läuft alles, bis es zu dem Punkt kommt, wo ich den Treiber benötige und einen Treiber, der nicht gefunden wird, Fehler zurückgibt.
Ich betreibe dies wie folgt: java -cp ../lib/mysql-connector-java-5.1.7.jar mytest.jar test.py/home/test/Daten
Ich bin nicht sicher, ich verstehe, warum man arbeiten würde und der andere würde nicht funktionieren ?.
Dank
Wenn Sie Java-Programme über Ant, Beanshell, Jython oder was auch immer ausführen, werden in einigen Fällen Klassen in einem benutzerdefinierten Classloader anstelle des "Standard Classloader" geladen. Wenn Sie zum Beispiel ein Beanshell-Skript starten und anschließend das Jar innerhalb des Skripts dynamisch laden, wird die JAR-Datei in einen benutzerdefinierten Classloader geladen, und Klassen, die mit der Class.Forname-Methode geladen werden müssen, haben daher Probleme in der Umgebung . So lange Sie Sachen in den Standard Classloader laden, haben Sie keine Probleme. – djangofan