Я создал приложение Java, сделал из него автономное приложение и сделал установщик с InnoSetup.JAR не имеет прав на запись в своей собственной установке directoy (Windows 8)
Когда я его установлю, мое приложение будет установлено по умолчанию в Windows 8: C:\Program Files (x86)\InstallDirOfApp
.
Когда я запускаю свое приложение, он должен записать некоторые файлы (например, настройки) в свою папку установки. Но у него нет разрешения на это. Только когда я начинаю его с «Начать как администратор», он снова работает хорошо.
Как это исправить? Я не хочу говорить моим пользователям, что они всегда должны нажать «выполнить как администратор».
И кстати: почему Windows не позволяет приложению писать в свой собственный каталог установки?
«Когда я запускаю приложение, он должен записать некоторые файлы (например, настройки) в каталог установки». Не делайте этого, в основном. Жизнь намного проще, если вы отделяете данные, присущие самой программе (ее двоичные файлы и ресурсы) от сгенерированных данных (настройки, пользовательские документы и т. Д.). Это упрощает процесс обновления, поскольку вы знаете, что вы можете заменить * все * в области программных файлов. Это очень распространено. –
Поместите ваши программы в записываемые данные в '{user.home}/AppData/Local' или' {user.home}/AppData/Roaming' в зависимости от того, может ли конфигурация переноситься на другие машины или нет. – MadProgrammer
Я думаю, что реальный вопрос : почему ** вы ** считаете, что каталог, который используется для установки приложений, является подходящим местом для хранения данных, с которыми имеет дело приложение ?! – GhostCat