# Admin Rechte



## NagaraHyuga (30. Mai 2010)

Hi,

Ich habe ein Java-Programm, dass etwas auf C:/Programme/... kopieren soll. Jedoch geht dies nicht, da man unter Windows 7 Administrator-Rechte braucht, um etwas auf C:/ zu kopieren. Wie kann ich die .jar Datei als Administrator ausführen?? Am besten wäre es, wenn sich, wie bei anderen Programmen auch, so ein Fenster öffnet, in dem steht: "Möchten Sie zulassen, dass durch das folgende Programm von einem Unbekannten Hersteller Änderungen an diesem Computer vorgenommen werden?...".
Gibt es diese Möglichkeit?? Wenn nicht, welche Alternativen gibt es??

MFG
      NagaraHyuga


----------



## U2nt (30. Mai 2010)

Also dieses Fenster macht ja die UAC ich weiß nicht ob es dafür eine Klasse Methode oder irgendsowas gibt, aber ich guckmal nach...


----------



## Tharsonius (31. Mai 2010)

Soweit ich das weiss und das bestätigt sich mit meinen bisherigen Erfahrungen seitens Windows 7, kommt dieses "Wollen sie zulassen...." Fenster nur, wenn man als User das Programm als Administrator startet.

Von sich aus kommt das nicht. Wenn man ein Programm normal startet, dann läuft das nur normal, das bekommt keine Admin Rechte.

Man muss als User explizit sagen, als Admin starten, kann dies aber in den Eigenschaften der exe fest eintragen.

Nur wenn das Programm als Admin gestartet wird kommt dieses Warnungsfenster.


----------



## faetzminator (31. Mai 2010)

...und das scheint wohl das Problem des TO's zu sein, da das Jar kein Executable ist... Ich hab kein Win7, aber wenn möglich, dann sicher auch nur unter rechte Maustaste -> Eigenschaften.


----------



## Tharsonius (31. Mai 2010)

Ob man das bei anderen Dateitypen (wie bsp .jar) auch festlegen kann weiss ich nicht, macht aber grundlegend keinen Sinn das da anzugeben, selbst wenn es geht.

Wenn man eine .exe startet, dann wird die ausgeführt. Wenn man irgend eine andere Dateiendung anklickt, dann wird daraufhin auch eine .exe gestartet, nämlich die von dem Programm, welches nötig ist, die gewünschte Datei auszuführen.

Im Falle einer .jar ist das natürlich die java.exe in der JRE, die gestartet wird und dann als Parameter die .jar Datei bekommt.

Man müsste also die Virtuelle Machine als Admin ausführen.


Als Admin starten kann man per Rechtsklick auf die .exe und dann "Als Admin ausführen" auswählen, für einmaliges starten als Admin. Zum fest eintragen ebenfalls rechtsklick auf die Exe, dann unter Eigenschaften gibt es einen Haken, den man setzen kann.


----------



## JohannisderKaeufer (31. Mai 2010)

C:\Programme ist im allgemeinen nicht dazu gedacht, da einfach etwas reinzukopieren.

Anwendungsdaten gehören zu den Anwendungsdaten, wo auch immer das in Windoof sein mag.

Für die Installation eines Java-Programms in Crogramme, kann man bei Windows auch mal einen proprietären Installer heranziehen. MSI und so'n zeug.

Um Updatefunktionen, sowie auch die Installation durchzuführen, kannst du auf Java Web Start zurückgreifen, was imho auch unter W7 funktionieren sollte.

Schau erstmal ob sich deine Aufgabe nicht einfach durch Webstart lösen lässt.


----------



## Tharsonius (1. Jun 2010)

Das ist so nicht ganz korrekt.
C:\Programme ist durchaus genau für installierte Programme gedacht, deswegen heißt der Ordner ja so.
Unter Windows 7 heisst der Ordner mittlerweile aber leicht anders, weiss das aus dem Kopf derzeit aber nicht, hab Win 7 nur daheim.

Allerdings sollte man allgemein auf C nicht zu viel installieren, weil dort das System auch die Auslagerungsdatei anlegt. Aus Performancegründen sollte C nie mehr als halb voll sein.


Der Ordner Anwendungsdateien liegt ganz nebenbei im User Profil, also C:\Dokumente und Einstellungen\<Profilname>\Anwenderdateien
Hier gehören Anwenderspezifische Informationen rein, wie beispielsweise benutzerabhängige Einstellungen. Dieser Ordner ist nämlich nur für den gerade angemeldeten Anwender sichtbar.

Aus diesem Grund macht es schon Sinn, das .jar in Programme zu installieren und nur die Einstellungen dann in den jeweiligen Anwenderdateien. Es gibt unter Windows übrigens auch einen Pfadnamen, den man ansprechen kann, der immer auf das Profil verweist. Man muss also den Profilnamen nicht kennen. Habe diesen Namen aber auch gerade nicht zur Hand. Dies ist besonders dann interessant, wenn man wirklich Einstellungen im Profil speichern will.

In Firmen bei eventuell servergespeicherten Profilen muss man obendrein sowieso auf den Speicherplatz aufpassen, nicht selten gibt es noch eine Quota, so dass die Profile nicht zu groß werden. Aus diesem Grund haben Programme egal welcher Art im Profil eigentlich gar nix zu suchen.


----------



## Gast2 (1. Jun 2010)

Tharsonius hat gesagt.:


> Unter Windows 7 heisst der Ordner mittlerweile aber leicht anders, weiss das aus dem Kopf derzeit aber nicht, hab Win 7 nur daheim.


"Program Files" - ich liebe Datei-Pfade mit Leerzeichen



> Allerdings sollte man allgemein auf C nicht zu viel installieren, weil dort das System auch die Auslagerungsdatei anlegt. Aus Performancegründen sollte C nie mehr als halb voll sein.


Unsinn - die Performance hängt alleine davon ab wie schnell Deine Pladde ist ... wenn Du nicht willst das das Ding extrem wächst, dann schalt es ab oder lege die maximale Größe fest ... alternativ kannst Du den Auslagerungspeicher auch verschieben - z.B. auf D: ... oder mach es wie Linux - eigene Partition



JohannisderKaeufer hat gesagt.:


> Anwendungsdaten gehören zu den Anwendungsdaten, wo auch immer das in Windoof sein mag.


bei jeder Version woanders - immer schön suchen bei einem Backup 



> Schau erstmal ob sich deine Aufgabe nicht einfach durch Webstart lösen lässt.


sollte für Java die bessere Variante sein



Tharsonius hat gesagt.:


> Soweit ich das weiss und das bestätigt sich mit meinen bisherigen Erfahrungen seitens Windows 7, kommt dieses "Wollen sie zulassen...." Fenster nur, wenn man als User das Programm als Administrator startet.


nein - das regelst Du über eine entsprechende Datei ... msdn manifest - Google-Suche



> Von sich aus kommt das nicht. Wenn man ein Programm normal startet, dann läuft das nur normal, das bekommt keine Admin Rechte.


und dann kommt das auch von alleine ohne das man dem User sagen muss - "mach mal als Admin"

UAC ist dennoch Bullshit - vernüftige Benutzerrechte können Probleme die UAC verhidnern soll auch verhindern


----------



## JohannisderKaeufer (1. Jun 2010)

mogel hat gesagt.:


> "Program Files" - ich liebe Datei-Pfade mit Leerzeichen
> 
> bei jeder Version woanders - immer schön suchen bei einem Backup



System.getenv("ProgramFiles");
System.getenv("APPDATA");
System.getenv("LocalAPPDATA");

sollten weiterhelfen.


----------

