Tôi có một ứng dụng Java trên máy tính để bàn mà tôi đã viết. Trong khi thực hiện, tôi tạo các thư mục và tệp tại tên đường dẫn mặc định được xác định trong hệ thống.thư mục người dùng làm việc: XP vs Vista
Java.io.files nêu rõ: 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.
Bên cạnh đó, tôi đang sử dụng IzPack để cho phép cài đặt và các phím tắt sáng tạo.
Khi tôi đang chạy ứng dụng của mình trên máy tính XP, sau khi cài đặt, tôi nhận được lối tắt trên màn hình, và việc tạo tệp và thư mục được đề cập ở vị trí mà Izpack đã cài đặt Jar. đó là hành vi mong đợi.
Nhưng khi tôi thử nghiệm trên máy Vista, các thư mục và tệp được tạo trên màn hình nền! mặc dù Jar ở đúng vị trí (c: \ program files ..vv).
Tôi muốn các tệp đó được tạo tại cùng một thư mục mà Jar đang ở và hầu như không có ở màn hình.
Có ai có thể cho tôi biết bất kỳ thông tin chi tiết nào về những gì đang diễn ra ở đây không?
Viết để c: \ Program files trong Vista cần sự đồng ý của UAC, vì vậy tôi nghi ngờ rằng System sử dụng desktop làm dự phòng. –
Có cách nào bạn nghĩ rằng tôi có thể kiểm soát dự phòng? – uzil24
Bạn vẫn có thể đặt cài đặt ứng dụng java mặc định bên trong% PROGRAMFILES% cho thư viện ứng dụng cốt lõi và như vậy. Tuy nhiên, thay vì lưu ** cấu hình người dùng/dữ liệu của bạn ** bất kỳ vị trí nào bên trong% PROGRAMFILES% trong bất kỳ hệ điều hành Windows nào, cách sử dụng 'System.getProperty (" user.home ")' hoặc 'System.getenv (" USERPROFILE ") 'với một thư mục đặc biệt bên trong cho ứng dụng java của bạn mà nó làm cho nó dễ dàng hơn cho người dùng/ứng dụng để thay đổi một cái gì đó? –