Исполняемый файл JAR не запускается, если он находится в каталоге Programs - PullRequest
2 голосов
/ 13 сентября 2011

У меня очень странная проблема, которая сводит меня с ума .-. Я работаю над относительно большим Java-проектом для Windows, используя NetBeans и IzPack для подготовки графического установочного пакета. Все в порядке, скомпилированный установщик работает, и моя программа скопирована в папку C: \ Programs \ MyProject.

Но ... когда я дважды щелкаю файл myproject.jar в этой папке, он вообще не запускается. Я явно пытался открыть приглашение и набрать «java -jar myproject.jar», но ничего, даже строку кода ошибки. Любопытных фактов два:

  • если я открою его, используя подсказку с правами администратора, оно будет работать
  • в той же папке находится еще один jar-файл 'uninstaller.jar', созданный izpack, и он работает с двойным щелчком мыши.

Я дважды проверил мою установку JVM, значения PATH / JAVA_HOME / ... и вкладку Properties-> Security моего JAR, но разрешения на выполнение / чтение / запись для каждого типа пользователей в порядке, а также равны для удаления.

Так в чем проблема? Спасибо

1 Ответ

2 голосов
/ 13 сентября 2011

Это почти наверняка вызвано Windows UAC в Vista и Windows 7.

Ваша программа, вероятно, пытается записать файлы данных в том же каталоге, в котором установлена.

В Windows программы с хорошим поведением пишут в каталог данных приложения пользователей или всех пользователей.

Расположение этого каталога зависит от версии Windows.

Вы можете использовать системное свойство "user.home", чтобы найти безопасное место для хранения данных.

Вы также можете получить список переменных среды для общих и пользовательских папок данных программы из здесь .

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