Ich habe ein altes Java-Programm, das ein SQL-Skript ausgibt. Ich verwende dann Apache Derby, um diese SQL auf der Zieldatenbank auszuführen (die sich nicht auf demselben Server wie CRON befindet).
Wenn es über Kitt ausgeführt wird, funktioniert dies einwandfrei. Unter Windows funktioniert dies einwandfrei. Wenn Derby mit CRON ausgeführt wird, liest es £ -Zeichen als ?.
Wenn ich mir das (mit VI) generierte SQL-Skript anschaue, enthält es die £ -Zeichen. Wenn ich die Datenbank jedoch überprüfe, enthält sie ?.
Warum sollte sich das Programm unter CRON anders verhalten?
Für mich haben die genannten Lösungen nicht funktioniert. Eine andere Lösung, die ich las, war zu setzen
"LANG = en_US.UTF-8" in der Datei "/ etc / environment".
Funktionierte aber auch nicht.
Was für mich funktionierte, war das Öffnen der Crontab-Datei mit
und am Anfang setzen:
Womit auch die Umgebungsvariable gesetzt wird.
Dies muss mit jedem Benutzer erfolgen, den Sie diese Variablen ausführen möchten. Führen Sie für root "sudo -s" aus, bevor Sie crontab eingeben.
quelle