2009-02-27 17 views
4

Ich habe mehrere Projekte gemacht und sie in JAR-Dateien verpackt, aber ich habe festgestellt, dass meine JAR-Dateien viel langsamer als in meiner IDE laufen.Ausführbare Jars laufen sehr langsam

Ich benutze Eclipse, um meine Programme zu kompilieren und auszuführen. In Eclipse habe ich alles in Ordnung. Wenn ich mein Projekt als ausführbares Jar verpacke und es per Doppelklick ausführe, funktioniert alles noch. Aber wenn ich Animation habe, läuft das Programm extrem langsam. Statt 30 Frames pro Sekunde in Eclipse bekomme ich jetzt 2 Bilder pro Sekunde. Die Animation ist sehr lückig.

Interessant ist, wenn ich den gleichen Jar von der Eingabeaufforderung (java -jar MyCode.jar) ausführen, verschwindet die Verzögerung und mein Programm funktioniert wie normal.

Ich habe derzeit keine Ahnung, was dieses Problem verursacht. Auf meinem Computer läuft Windows Vista. Ich verwende die neueste Version von JRE und JDK. Mein Programm enthält eine Animation, nichts Besonderes.

Thanx

Lösung: Es wurden mehrere verschiedene Versionen von Java auf meinem Computer und eine falsche Version verwendet wurde.

+0

Offensichtlich hat Microsoft Ihre JVM humpelte! Ich rieche (ein anderes) Anti-Trust ... – erickson

+0

Ich habe normalerweise einen Debugging-Schalter, mit dem ich die vollständige System.getProperties() (sortiert!) Zum Zeitpunkt des Starts ablegen kann. Hilft sehr bei diesen Problemen. –

Antwort

4

Die Version von java.exe, die mit Windows geliefert wird, ist sehr veraltet. Wenn Sie die Verknüpfung der Erweiterung .jar mit der neueren JVM ändern, sollten Sie eine deutliche Verbesserung feststellen.

3

Wahrscheinlich haben Sie den Doppelklick mit einer "schlechten" JVM-Version verknüpft.

Was ich tun würde, ist processxp von SysInternals zu verwenden, um zu sehen, was ist der Interpreter Ihre App verwendet. Wahrscheinlich ist es nur wichtig, es zu ändern, um dasselbe wie die Befehlszeile und die Sonnenfinsternis zu verwenden.

dass prüfen und sehen, ob beide die gleiche JVM verwendet (es gibt eine Spaltennamen Befehlszeile in ProcessXP, vergleicht diesen Wert)

Ich hoffe, das hilft.

4

Sie können auch prüfen, ob eine laufende Antiviren-Software die Leistung beeinträchtigt. Manche Software behandelt .jar-Dateien als .zip-Archive, die sie sind, und scannt sie entsprechend. Ihre Shell-Integration könnte auch den Unterschied zwischen Doppelklick und Befehlszeile erklären.