Hallo Leute
Kann es sein, dass sich von Java 1.4 auf Java 6 etwas grundlegendes beim Laden von externen Bibliotheken (unter Windows also DLLs) getan hat?
Wir haben eine Java-Anwendung, die unter Windows XP SP2 läuft. Als VM kommt in der alten Version der Anwendung Java 1.4.2_04 und in der neuen Version der Anwendung Java 1.6.0_11 zum Einsatz. Diejenigen Klassen, die die DLL aufrufen, haben sich zwischen den beiden Versionen vom Code her nicht geändert - sie wurden lediglich mit dem neuen JDK neu kompiliert.
Der erste Unterschied, der uns auffällt, ist ein rein optischer: die aufgerufene Methode der DLL öffnet u.a. einen simplen Dialog mit einem Passworteingabefeld. Die eingegebenen Zeichen werden dabei maskiert. Wird die DLL unter Java 1.4 aufgerufen, werden Sternchen (*) als Maskierungszeichen verwendet. Unter Java 6 hingegen Pipe-Zeichen (|). Obwohl mich das Verhalten wundert, stört es mich wenig.
Was mich stört ist, dass der Aufruf der DLL unter Java 6 manchmal ohne direkt ersichtlichen Grund fehlschlägt. Es scheint allerdings damit zusamenzuhängen, dass die Anwendung längere Zeit nicht benutzt wurde (PC über nach bei aktiver Anwendung laufen lassen) bzw. dass der PC bei aktiver Anwendung auf Stand-By geschaltet wurde.
Unter Java 1.4 haben wir diese Probleme nicht beobachten können. Ein Rückstieg der Anwendung auf Java 1.4 ist allerdings inzwischen nicht mehr sinnvoll möglich (sprich: zu teuer).
Kennt jemand diese Probleme - und vielleicht sogar eine Abhilfe?
LG
Erwin