# Kein user.home unter Windows8



## Guybrush Threepwood (10. Nov 2012)

Hi,
ich habe einen meiner Rechner vor 2 Wochen von Win7 auf Win8 umgerüstet, hauptsächlich um meine Software auf Win8-Kompatibilität zu testen. Zwar verstehe ich nach wie vor nicht, warum MS den Usern von Nicht-Tablet-PCs diese geänderte Benutzerführung aufzwingt. Für Touch-Monitore sind die Gesten sicher gut anwendbar - für klassische PCs mit Maus-Bedienung sind sie dagegen eher holprig. So richtig von der Hand geht es auch nach längerer Einarbeitungszeit nicht. Andererseits ist es auch nicht so schlimm wie befürchtet und mit Welcome to Classic Shell kann man wie von Windows-Vorgängerversionen gewöhnt normal weiterarbeiten. Auch Java läuft prinzipiell ohne Probleme.

Was aber für viele Programme - insbesondere jene, die plattformübergreifend angelegt sind - ein Problem werden könnte: Die Umgebungsvariable user.home existiert nicht mehr. Man braucht für das Ablegen von Nutzerdaten spätestens mit Windows 8 eine Betriebssystemweiche, die beispielsweise unter Windows nicht auf User.home, sondern auf APPDATA abzielt. Ich dachte, das könnte für einige hier interessant sein.

Viele Grüße,
   Guybrush


----------



## nillehammer (10. Nov 2012)

Das klingt für mich so unglaublich, dass ich es tatsächlich nicht glaube. Ich würde hier zunächst Fehler in Deinen Tests unterstellen. Aber vielleicht irre ich mich ja auch... kann das jemand anders hier bestätigen?


----------



## Gast2 (10. Nov 2012)

Wie hast du das getestet? Per 
	
	
	
	





```
System.getProperty("user.home")
```
?


----------



## gasssssssst (10. Nov 2012)

Blödsinn, natürlich ist die Variable noch da. Was hätte das auch mit der Version von Windows zu tun?

Getestet mit Windows 8 RTM, Java 1.7.0_07, 64bit von Oracle


----------



## Guybrush Threepwood (10. Nov 2012)

Eclipse hat mich beim ersten Start darauf hingewiesen, dass die Umgebungsvariable user.home nicht existieren würde und verwies darauf, dass die Umgebungsvariable nun angelegt werden würde. 


```
System.out.println(System.getProperty("user.home"));
```
 ...
... liefert nun tatsächlich das User-Verzeichnis. Ich bin mir aber nicht sicher, ob diese auch auf einem jungfräulichen System existieren würde. Vielleicht habe ich aber auch nur etwas durcheinander gebracht.


P.S.: Für den Fall, dass ich Unfug erzählt habe, bitte diesen Thread ignorieren. Mea culpa!


----------



## trööhööt (11. Nov 2012)

sorry das ich mich hier mal einklinke ... aber folgendes wäre im topic-post mal ganz wichtig gewesen : ECLIPSE ...

wenn du gleich gesagt hättest das sich eclipse darüber beschwert das irgendeine "systemumgebungsvariable" nicht existiert wären die antworten sicher ganz anders ausgefallen anstatt einfach zu sagen "user.home gibts nicht mehr" ... denn erlich ... ich kann mir NICHT vorstellen was

```
System.getProperty("user.home");
```
damit zu tun haben soll welche Windows- und/oder Java-version man verwendet ...

das klingt nicht einfach nur "unglaublich" sondern schlicht "lächerlich"

es macht schon einen unterschied ob man von einer systemumgebungsvariable wie "PATH" "CLASSPATH" etc spricht ... und davon das sich irgendeine (in meinen augen genau so nutzlose wie alle anderen denn man braucht keine) IDE darüber beschwert ... oder davon das man innerhalb von java-source versucht eine System-Property auszulesen ...

außerdem : wenn sich die IDE beschwert dann hätte ich mir n terminal genommen und einfach mal diesen code "per hand" compiled

```
public class HomeTest { public static void main(String[] args) { System.out.println(System.getProperty("user.home")); } }
```
aber das scheint dir ja deinem post nach zu urteilen unmöglich zu sein ...


btw : mach dir erstmal kein plan ob deine software unter Win8 läuft ... zumindest nicht so lange du anfängst mit den neuen features rumzuspielen die es gibt ...
für einen guten java-entwickler der seinen code bewusst so schreibt das er als bytecode direkt plattform-portabel ist hat eigentlich nur eins zu interessieren : wer bringt die nächste VM für die ziel-platform raus ...
und da ich mir nicht vorstellen kann das es so den großen unterschied macht ob ich jetzt ne v7u9 x64 auf Win 7 Ulti x64 oder Win 8 installiere würde ich den fehler ebenfalls im code suchen ... und nicht bei java selbst ...


----------



## Gast2 (11. Nov 2012)

Guybrush Threepwood hat gesagt.:


> ich habe einen meiner Rechner vor 2 Wochen von Win7 auf Win8 umgerüstet, hauptsächlich um meine Software auf Win8-Kompatibilität zu testen.



Tipp: nimm dafür das nächste mal VirtualBox oder WMware-Player. Dann zerstörst Du Dir wenigstens kein funktionierendes System.


----------



## Guybrush Threepwood (11. Nov 2012)

Für alle, die sich durch meine hier im Forum gepostete vermutlich fehlerhafte Gelegenheitsbeobachtung angegriffen / beleidigt / in ihren Gefühlen verletzt sehen: Es war nicht meine Absicht das zu tun und ich dachte auch nicht, dass das potenzielle Fehlen von user.home für jemanden derart emotional aufwühlend sein könnte.

Sorry und noch einen schönen Sonntag Nachmittag.


----------

