Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7

Blender3D

Top Contributor
Ich habe eine Anwendung erstellt, die interessanterweise auf meinem Windows 10(i7, 16 GB) und Ubuntu (i5 8GB) ohne Probleme läuft aber nicht unter meinem Windows 7( i3 6GB )!
Das Programm startet mit einem Menü mit Full HD Hintergrundgrafik jpg ca. 230 KB.
Unter Win 7 kann ich nicht einmal mehr eine JOptionpane öffnen.
Kann es sein, dass ich einen unentdeckten Deathlock übersehen habe, der nur bei Win7 auftritt ?. Der Speicher dürfe kein Problem sein da ich auf allen Systemen nur Java 32 Bit verwende und die Speicherobergrenze von 3 GB immer abgedeckt sein sollte.

Wer hat eine Idee woran das generell liegen könnte ?
 
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
und keine Fehlermeldung.
Im Main Menu wird die Hintergrundgrafik nicht angezeigt und ein klick auf den Menüpunkt Exit der nur eine JOptionpane aufruft führt zum Steckenbleiben der Anwendung aber nur unter dem Win7 Rechner.
 
Hier ein Screenshot mit der command Shell ohne Fehlermeldung leider.
Das Fenster in der Mitte ist eine JOptionpane die nicht mehr richtig angezeigt wird.
Bin ratlos.
 

Anhänge

  • error.PNG
    error.PNG
    449,8 KB · Aufrufe: 42
Gibt es gute Tools, um Threads und Speicher einer Java Anwendung in der Entwicklung zu checken.
Die Software kommt im Businessbereich zum Einsatz. Und ich möchte eventuell grobe versteckte Fehler vermeiden. Da die Software auf dem Win 7 System nicht läuft, deutet alles auf einen groben Schnitzer meinerseits hin.
Anzumerken ist, dass andere von mir erzeugte Java Programme auf diesem System einwandfrei laufen.
Bin für jeden Rat dankbar.
 
"Es tritt kein Fehler auf" und "Es wird kein Fehler angezeigt" sind zwei verschiedene Paar Schuhe.
Wenn du so ein Konstrukt in deinem Code hast
Java:
try{
//irgendein Code
}
catch(Exception e){
//hier steht nix. Exceptions werden weder weitergereicht noch gescheit bearbeitet.
}
würdest du auftretende Fehler nicht bemerken.
 
Ist mir bewusst. Ich bin ja auf der Suche nach einem eventuell versteckten Fehler. ( Ist ja wahrscheinlich mein Problem.) Seltsam ist nur das bei meinen anderen Systemen alles problemlos läuft. Und außerdem, wird nur eine JOptionpane geöffnet auf der nur Strings angezeigt werden. Und da wird auch kein Fehler von mir künstlich abgefangen. Wie gesagt ich bin ratlos
 
Dann zeig doch mal den kompletten Code, wo nur eine JOptionPane mit Strings angezeigt wird.
Haben die anderen Proigramme, die anstandslos laufen, auich eine Gui? Wenn ja, laufen alle mit demselben Framework (SWT, Swing, JavaFX, etc.) und demselben LAF?
 
Code:
private void showUsedMemory() {
        if (!GLOBAL.debug)
            return;
        Runtime rt = Runtime.getRuntime();
        long totalMem = rt.totalMemory();
        long maxMem = rt.maxMemory();
        long freeMem = rt.freeMemory();
        double megs = 1048576.0;
        System.out.println("Total Memory: " + totalMem + " (" + (totalMem / megs) + " MiB)");
        System.out.println("Max Memory:   " + maxMem + " (" + (maxMem / megs) + " MiB)");
        System.out.println("Free Memory:  " + freeMem + " (" + (freeMem / megs) + " MiB)");
    }
Code:
    case MenuButtonBar.BUTTON_EXIT:
            int ok = JOptionPane.showConfirmDialog(null,
                    "         EXIT Poker Watch\n\n\n Created by ....",
                    "    C.A.T.S. (c) 2017    Version 1.0", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

            showUsedMemory();
            if (ok == JOptionPane.YES_OPTION)
                System.exit(1);
            break;
        }

GLOBAL.debug = false;
 
Heureka der Fehler ist gefunden. Vormals danke für Eure Hilfe. Der Fehler lag daran, dass ich unter UBUNTU OPEN GL
mittels System.setProperty("sun.java2d.opengl", "true") aktiviere und die Zeile auch unter Windows aufgerufen wird.
Weil unter UBUTNTU OPEN GL nicht automatisch aktiviert ist.
Unter meinem Win10, UBUNTU Systemen stellt das kein Problem dar. Wahrscheinlich weil auf beiden Systemen eine NVIDA Karte läuft. Am Win 7 System ist eine AMD Radeon HD 5700 verbaut.
Jedenfalls das entfernen dieser Zeile hat das Problem beseitigt.
Also kein Deathlock oder Speicherproblem im CODE. 🙄
Für diejenigen die auf ein ähnliches Problem stoßen: Java kann zwar Systemeigenschaften setzen, aber das kann auch Folgen für das jeweilige System haben.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben