Приложение Java не работает должным образом вне каталога IDE - PullRequest
0 голосов
/ 02 февраля 2010

Когда я запускаю его с NetBeans, все в порядке. Когда я копирую содержимое каталога dist и запускаю .jar, некоторые вещи становятся ошибочными. Самое главное, редактирование JTable становится беспорядочным, некоторые поля теряют фокус только тогда, когда вы нажимаете ESC (если вы нажали ENTER раньше, изменения принимаются, в противном случае они не принимаются, но вам нужно ESC в обоих случаях) и подобные странные вещи. У меня такое ощущение, что мне не хватает чего-то очевидного ...

P.S. файлы компилируются автоматически при сохранении (функция NetBeans), если это имеет значение.

Редактировать: когда я просто захожу в dist dir и запускаю .jar, это тоже работает. Проблемы начинаются, когда я копирую dist dir из директории проектов NetBeans ... Может ли быть, что некоторые зависимости нарушены или что-то в этом роде?

Редактировать 2 (ответ):

Эта проблема возникала на моем компьютере (Ubuntu 9.04), в моей Windows XP внутри Virtual Box и на другом (реальном) компьютере с Windows XP. Когда я запускаю его из консоли с помощью java /path/to/main.jar, он выдает исключение mainClassNot found и вообще не запускается. Когда я запускаю его с помощью java -jar /path/to/main.jar, он работает своего рода, но когда дело доходит до указанных ситуаций, он выдает java.lang.NumberFormatException: null.

Единственное место, где я использую NumberFormat (при обновлении таблицы):

DecimalFormat parser = new DecimalFormat("0.00");

И, возможно, это:

currencyFormatter = NumberFormat.getCurrencyInstance( Locale.getDefault() );

Где языковой стандарт по умолчанию установлен на

Locale.setDefault(new Locale("lt", "LT"));

Версия Java - 1.6.0_18, JDK используется NetBeans и JVM на указанных машинах.

Ответы [ 4 ]

4 голосов
/ 09 февраля 2010

В NetBeans перейдите в свойства вашего проекта ( Файл> Свойства проекта ). Перейдите на вкладку Библиотеки . Нажмите Управление платформами и посмотрите значение для Папка платформы .

С консоли запустите <platform folder>\java -version.

Теперь попробуйте снова без полного пути; просто java -version.

Я ожидаю, что они возвращают разные значения.

Путь, используемый IDE, происходит из определения платформы, которое по умолчанию создается при установке NB и никогда не обновляется. Путь, используемый в консоли, взят из переменной среды Windows PATH. Он обновляется всякий раз, когда Java установлена, и со временем будет отличаться от пути, используемого в среде IDE.

Хорошее эмпирическое правило: , когда Java сообщает, что доступно обновление, пришло время добавить новую платформу Java в NetBeans .

Я обычно держу несколько платформ вокруг. Минимум: последние версии 1.4.2, 1.5.0, 1.6.0 и старая версия 1.6.0 (в настоящее время u4, версия, которую мы рекомендовали в нашем первом выпуске продукта).

2 голосов
/ 03 февраля 2010

Вы пробовали что-то столь же обыденное, как создание чистой сборки, чтобы все новые изменения и ресурсы были скопированы в библиотеку dist?

1 голос
/ 02 февраля 2010

Разные версии JRE? Это было бы мое предположение, глядя на ваши симптомы.

Есть разные способы сделать это, но вы можете получить полную информацию о обоих процессах (один запущен NetBeans, а другой - нет), используя jconsole (jdk_dir / bin / jconsole.exe). Это даст вам JRE, загруженные банки и т. Д., Которые вы сможете сравнить ...

НТН ...

1 голос
/ 02 февраля 2010

Интересно ... JAR хранятся в формате ZIP, так что вы можете попробовать сравнить JAR, который вы скомпилировали, с JAR Netbean (если вы можете его найти), чтобы увидеть, что именно отличается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...