Mam aplikację Java na komputery stacjonarne, którą napisałem. Podczas wykonywania tworzę foldery i pliki o domyślnej nazwie ścieżki zdefiniowanej w systemie.katalog roboczy użytkownika: XP vs Vista
Java.io.files wyraźnie stwierdza: By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked.
Ponadto używam IzPack aby umożliwić tworzenie instalacji i skróty.
Kiedy uruchamiam swoją aplikację na moim komputerze XP, po instalacji otrzymuję skrót na pulpicie, a wspomniane pliki i foldery znajdują się w lokalizacji, w której Izpack zainstalował Jar. które jest oczekiwanym zachowaniem.
Ale kiedy testuję to na maszynie Vista, foldery i pliki są tworzone na pulpicie! mimo że Jar znajduje się we właściwej lokalizacji (c: \ program files .. itd.).
Chcę, aby te pliki zostały utworzone w tym samym folderze, w którym znajduje się Jar, a na pewno nie na pulpicie.
Czy ktoś może mi dać wgląd w to, co się tutaj dzieje?
Pisania do c: \ pliki programu w systemie Vista wymagają zgody UAC, więc podejrzewam, że system korzysta z pulpitu jako awaryjnego. –
Czy istnieje sposób, w jaki można kontrolować awarię? – uzil24
Można nadal ustawić domyślną instalację aplikacji java w pliku% PROGRAMFILES% dla bibliotek podstawowych aplikacji i takich. Ale zamiast zapisywać twoje ** konfiguracje użytkownika/danych ** gdziekolwiek w% PROGRAMFILES% pod jakimkolwiek systemem operacyjnym Windows, jak używać 'System.getProperty (" user.home ")' lub 'System.getenv (" USERPROFILE ") 'ze specjalnym folderem wewnątrz twojej aplikacji java, który ułatwia użytkownikowi/aplikacji zmianę czegoś? –