Исполняемые банки работают очень медленно - PullRequest
4 голосов
/ 28 февраля 2009

Я выполнил несколько проектов и упаковал их в файлы JAR, но заметил, что мои файлы JAR работают намного медленнее, чем в моей IDE.

Я использую Eclipse для компиляции и запуска своих программ. В Eclipse у меня все работает. Когда я упаковываю свой проект как исполняемый файл Jar и выполняю его двойным щелчком, все по-прежнему работает. Но когда у меня есть анимация, программа работает крайне медленно. Вместо 30 кадров в секунду в Eclipse я теперь получаю около 2 кадров в секунду. Анимация очень медленная.

Интересно то, что когда я запускаю тот же Jar из командной строки (java -jar MyCode.jar), задержка исчезает, и моя программа работает как обычно.

В настоящее время я понятия не имею, что вызывает эту проблему. Мой компьютер работает под управлением Windows Vista. Я использую последнюю версию JRE и JDK. Моя программа содержит анимацию, ничего особенного.

Thanx

Решение: На моем компьютере было несколько разных версий Java, и использовалась неверная версия.

Ответы [ 3 ]

4 голосов
/ 28 февраля 2009

Версия java.exe, поставляемая с Windows, очень устарела. Изменяя связь расширения .jar с более поздней JVM, вы увидите значительное улучшение.

4 голосов
/ 28 февраля 2009

Вы также можете решить, влияет ли какое-либо работающее антивирусное программное обеспечение на производительность. Некоторое программное обеспечение обрабатывает файлы .jar как архивные файлы .zip и сканирует их соответствующим образом. Их интеграция в оболочку может объяснить разницу между двойным щелчком и командной строкой.

3 голосов
/ 28 февраля 2009

Возможно, вы связали двойной щелчок с какой-то «плохой» версией JVM.

Я бы использовал processxp из SysInternals, чтобы увидеть, какой интерпретатор использует ваше приложение. Вероятно, имеет значение только изменить его на использование так же, как в командной строке и затмении.

Проверьте это и посмотрите, использует ли обе эти функции одну и ту же JVM (в ProcessXP есть командная строка с именами столбцов, сравните это значение)

Надеюсь, это поможет.

...