2011-11-29 52 views
5

Tôi muốn ứng dụng máy tính để bàn java của mình biết liệu người dùng có đang chạy nó lần đầu tiên trên máy tính đó hay không. Vì tệp jar có thể được chia sẻ giữa những người dùng, tôi không muốn ghi vào một tệp bên trong tệp jar. Rõ ràng là có rất nhiều cách để làm điều này nhưng bạn sẽ đề nghị những gì? (Nó phải là nền tảng chéo). thanksPhát hiện người dùng lần đầu tiên trong ứng dụng java

Trả lời

4

Hãy thử sử dụng Preferences và các phương thức systemRoot() hoặc userRoot() để có được tùy chọn toàn hệ thống hoặc người dùng cụ thể.

+0

Điều này có vẻ thực sự gọn gàng, nhưng có thể hơi nguy hiểm? các tùy chọn hệ thống/người dùng có thể dễ dàng bị xóa bởi ứng dụng khác hoặc theo cách thủ công bởi người dùng, phải không? (có lẽ đó là rất không phổ biến mặc dù ..?) –

+0

Như với bất kỳ tùy chọn giải pháp khác có thể được thay đổi bởi người dùng/ứng dụng có quyền để làm điều đó. Nếu bạn phải ngăn xung đột giữa các tùy chọn của các ứng dụng khác nhau, hãy xem xét sử dụng [systemNodeForPackage (Class)] (http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html#systemNodeForPackage % 28java.lang.Class% 29) hoặc [userNodeForPackage (Class)] (http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html#userNodeForPackage%28java.lang .Class% 29) phương pháp. – szhem

+0

[Ở đây] (http://mindprod.com/jgloss/preferences.html#LOCATION) cũng là một số thông tin về nơi các tùy chọn thường được lưu trữ trong các hệ thống khác nhau. Và [ở đây] (http://java.sun.com/developer/technicalArticles/releases/preferences/) là một bài viết kỹ thuật khá cũ nhưng hữu ích về 'Preferences'. – szhem

7

Tôi khuyên bạn nên sử dụng thư mục nhà của người dùng nơi bạn có thể đặt tệp cài đặt cụ thể cho người dùng. Điều này sẽ cho phép bạn phát hiện người dùng lần đầu cũng như ghi nhớ bất kỳ tùy chọn nào họ có thể chọn.

System.getProperty("user.home"); // returns the home directory cross platform 
+0

Đây là một giải pháp hiệu quả ngoài khóa học, có thể không phải là rất đẹp trong trường hợp này mặc dù, bởi vì không có cài đặt người dùng cụ thể cần thiết. Chắc chắn ứng dụng có thể đặt một tệp trống trong thư mục chính (nếu tệp tồn tại không phải là người dùng lần đầu tiên), nhưng người dùng có thể bị khó chịu với tệp như vậy trong thư mục chính và xóa tệp đó. –

0

Mỗi hệ điều hành có một số thư mục cụ thể mà các dữ liệu người dùng được lưu trữ (/home, C:\Users, C:\Documents and settings). Giá trị này thường có sẵn trong JVM với thuộc tính hệ thống "user.home".

Lưu trữ một số tệp để lưu trữ cấu hình người dùng của bạn. Tất nhiên, mỗi hệ điều hành có cách làm điều đó (thư mục "Dữ liệu ứng dụng", thư mục có tên bắt đầu bằng dấu chấm), bạn nên chắc chắn rằng bạn tuân thủ nó.

Các vấn đề liên quan