> Hi all!
>
[quoted text clipped - 6 lines]
>
> Karsten
Look at the system property user.home.

Signature
Knute Johnson
email s/nospam/knute/
Karsten Wutzke - 18 Apr 2007 18:36 GMT
On 18 Apr., 19:19, Knute Johnson <nos...@rabbitbrush.frazmtn.com>
wrote:
> > Hi all!
>
[quoted text clipped - 13 lines]
> Knute Johnson
> email s/nospam/knute/
I know this. But I don't want to create files or directories "unasked"
which will clutter the user's home dir and make some users really mad
(as I would be).
Karsten
Knute Johnson - 18 Apr 2007 23:28 GMT
> On 18 Apr., 19:19, Knute Johnson <nos...@rabbitbrush.frazmtn.com>
> wrote:
[quoted text clipped - 17 lines]
>
> Karsten
Then store it on a remote server. I really don't think that makes any
sense but it accomplishes what you want; a file but not on the users
computer.
When I look in my Windoze computer home directory I can find 25 folders
of stuff that applications have put there. That is where that kind of
stuff belongs. I didn't look at my Linux home directory but I know
there is a lot of application data there too.

Signature
Knute Johnson
email s/nospam/knute/
Karsten Wutzke schrieb:
> I wish to save some user data (editable via GUI) on a per user basis.
>
> Is there any nice mechanism in Java that puts such info into an
> appropriate place? If I have to do that manually, what would be a nice
> place to save some small files with bothering the user? Or shall I
> force every user to specify a directory?
Sounds like you need java.util.prefs.Preferences.
You can get a handle to the user's preferences by:
Preferences prefs =
Preferences.userNodeForPackage(my.package.Main.class);
Java keeps the user's preferences in a platform-specific place:
(*) for Windows: in a certain user-specific branch of the registry
(*) for Unix/Linux: in a certain hidden file in the user's home dir.
But you don't have to care about those details.
You read/write specific key/value like this:
String value = prefs.get(key);
prefs.get(key, value);
For more details see the API docs
<http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferences.html>
<http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferences.html#userNod
eForPackage(java.lang.Class)>

Signature
Thomas
Jason Cavett - 18 Apr 2007 22:36 GMT
On Apr 18, 1:36 pm, Thomas Fritsch <i.dont.like.s...@invalid.com>
wrote:
> Karsten Wutzke schrieb:
>
[quoted text clipped - 25 lines]
> --
> Thomas
There wouldn't be any problem with permissions using this method,
would there? (AKA - The user can't write to the registry.)
angrybaldguy@gmail.com - 18 Apr 2007 22:53 GMT
> > Sounds like you need java.util.prefs.Preferences.
> >
[quoted text clipped - 16 lines]
> There wouldn't be any problem with permissions using this method,
> would there? (AKA - The user can't write to the registry.)
The default Sun implementation on Windows stores preferences in a node
under HKEY_CURRENT_USER, which is always writable by the current user
and is normally made part of the user's profile, whether local or
roaming.
So no, not really.
Jason Cavett - 19 Apr 2007 04:43 GMT
On Apr 18, 5:53 pm, angrybald...@gmail.com wrote:
> > > Sounds like you need java.util.prefs.Preferences.
>
[quoted text clipped - 23 lines]
>
> So no, not really.
By "normally" do you mean that, assuming no problems, I can assume the
settings will be saved on a per-user basis?
Brandon McCombs - 20 Apr 2007 01:36 GMT
> On Apr 18, 5:53 pm, angrybald...@gmail.com wrote:
>>
[quoted text clipped - 23 lines]
> By "normally" do you mean that, assuming no problems, I can assume the
> settings will be saved on a per-user basis?
Yes because for one thing the registry hive where the data is accessible
for the current user is HKEY_CURRENT_USER (imagine that) so it would
have to be on a per user basis because there is only one current user
allowed with Windows XP. Plus, if you look into HKEY_USERS hive in the
registry it will list all the SIDs of the users who have logged into the
PC whose registry you are currently viewing. A user's registry data is
part of the users profile so it will follow them (stored in ntuser.dat
in every user's profile) and when they log in the HKEY_CURRENT_USER hive
is just a link to the real location under HKEY_USERS. It is possible
for permissions to be screwed up on HKEY_CURRENT_USER such that a user
can't retain settings (like Windows Explorer folder view preferences)
but normally each user can read/write to that location because they need
to.
I use the Preferences API in my program to store connection settings to
a remote server in the registry for each other based on a recommendation
I received from this group a few months ago. The API is so easy and
after I experimented with it I was able to implement my code very quickly.
Jason Cavett - 20 Apr 2007 17:20 GMT
> > On Apr 18, 5:53 pm, angrybald...@gmail.com wrote:
>
[quoted text clipped - 44 lines]
>
> - Show quoted text -
I just finished implementing Preferences for an application I'm
working on. Wow...haha...that was so painless I felt like I did
something wrong.
;-) Loving the Preferences.
Knute Johnson - 18 Apr 2007 23:31 GMT
> Karsten Wutzke schrieb:
>> I wish to save some user data (editable via GUI) on a per user basis.
[quoted text clipped - 21 lines]
> <http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferences.html>
> <http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferences.html#userNod
eForPackage(java.lang.Class)>
I hadn't seen this before (where have I been?). Where does it store
stuff on a Linux system?

Signature
Knute Johnson
email s/nospam/knute/
Thomas Fritsch - 19 Apr 2007 11:03 GMT
>> Preferences prefs =
>> Preferences.userNodeForPackage(my.package.Main.class);
[quoted text clipped - 5 lines]
> I hadn't seen this before (where have I been?). Where does it store
> stuff on a Linux system?
On my Linux I found it in file
$HOME/.java/.userprefs/my/package/prefs.xml
And (by the way) on Windows it is in registry section
HKEY_CURRENT_USER\Software\JavaSoft\prefs\my\package

Signature
Thomas
Thomas Fritsch - 19 Apr 2007 14:18 GMT
> On my Linux I found it in file
> $HOME/.java/.userprefs/my/package/prefs.xml
$HOME/.java/.userPrefs/my/package/prefs.xml
> And (by the way) on Windows it is in registry section
> HKEY_CURRENT_USER\Software\JavaSoft\prefs\my\package
HKEY_CURRENT_USER\Software\JavaSoft\Prefs\my\package
Sorry for the 2 typos...

Signature
Thomas
Knute Johnson - 19 Apr 2007 17:46 GMT
>> On my Linux I found it in file
>> $HOME/.java/.userprefs/my/package/prefs.xml
[quoted text clipped - 5 lines]
>
> Sorry for the 2 typos...
Thanks Thomas.

Signature
Knute Johnson
email s/nospam/knute/