Erfordern Administratorrechte für die Java-Anwendung unter Windows Vista

9

Wenn ich versuche, eine neue Aufgabe im Aufgabenplaner über die Java ProcessBuilder-Klasse zu erstellen, erhalte ich einen Windows Vista-Zugriff verweigert. Auf XP funktioniert es gut.

Wenn ich die Option "Als Administrator ausführen" verwende, läuft sie auch unter Vista.

Dies ist jedoch ein zusätzlicher Schritt, den die Benutzer möglicherweise nicht wissen. Wenn der Benutzer nur auf das App-Symbol doppelklickt, wird der Zugriff verweigert. Meine Frage ist, wie kann ich eine Java-Anwendung erzwingen, Admin-Privilegien direkt nach dem Start zu erhalten?

    
dkp 03.11.2008, 14:17
quelle

5 Antworten

3

Ich bin mir nicht sicher, ob Sie das programmatisch machen können. Wenn Sie über ein Installationsprogramm für Ihre App verfügen, können Sie den Registrierungsschlüssel hinzufügen, der als Administrator ausgeführt werden soll:

  

Pfad:   HKEY_CURRENT_USER \ Software \ Microsoft \ Windows   NT \ Currentversion \ Appcompatflags \ Ebenen

     

Taste: & lt; & lt; Vollständiger Pfad zu exe & gt; & gt;

     

Wert: RUNASADMIN

     

Geben Sie Folgendes ein: REG_SZ

    
James Van Huis 03.11.2008, 14:50
quelle
23

Haben Sie überlegt, Ihre Java-Anwendung mithilfe von launch4j in eine EXE-Datei zu verpacken? Auf diese Weise können Sie eine Manifestdatei einbetten, mit der Sie die Ausführungsstufe für Ihre ausführbare Datei festlegen können. Mit anderen Worten, Sie steuern die Berechtigungen, die Ihrer laufenden Anwendung gewährt werden sollten, und weisen das Betriebssystem an, "Als Administrator auszuführen", ohne dass der Benutzer dies manuell tun muss.

Zum Beispiel ...

build.xml:

%Vor%

myappConfig.xml:

%Vor%

myapp.manifest:

%Vor%

Siehe Ссылка und die Website launch4j für Details zum Modus.

    
freecouch 23.02.2010 14:34
quelle
1

Obwohl die Antwort von FreeCouch gut ist, hatte ich ein Problem und dachte darüber nach, es hier zu platzieren, damit andere das nächste Mal leicht profitieren können.

Um Administrator-Berechtigung in Java zu bekommen, so weit ich die Lösung gefunden habe, wickle die * .jar innerhalb einer * .exe mit einem Programm wie Launch4J und verbinde Manifest damit.

Um eine Manifest-Datei zu erstellen, öffnen Sie einen beliebigen Texteditor wie Notepad und fügen Sie diese Zeilen ein und speichern Sie sie mit dem Dateinamen zusammen mit der Erweiterung für zB: myApplication.exe.manifest

%Vor%

Fügen Sie in Launch4J auf der Registerkarte Basic diese Datei in der Wrapper-Manifest-Option hinzu.

    
Abdul Jabbar Dumrai 10.11.2014 16:30
quelle
0

Ich habe noch nicht die beste Lösung gefunden. Aber ich habe eine Alternative zu "James Van Huis". Verwenden Sie stattdessen RUNASINVOKE, damit Sie nicht jedes Mal, wenn Sie die App ausführen, die Eingabeaufforderung Zulassen / Verweigern sehen müssen.

Hinweis: Sie müssen immer Admin sein, das, was ich zu lösen versuche

    
Pham H. An 13.02.2010 06:39
quelle
0

Verwenden Sie das launch4j Gradle Plugin

Besonders wenn Sie Gradle bereits verwenden, ist es einfach, das launch4j-Plugin anzuwenden, um das Problem zu beheben.

Erstellen Sie wie in freecouch eine Datei myapp.manifest mit

%Vor%

Dann wenden Sie das Gradle-Plugin an, indem Sie es zu Ihrem build.gradle

hinzufügen %Vor%

oder, wenn du Kotlin Gradle DSL benutzt, zu deinem build.gradle.kts :

%Vor%     
PHPirate 04.04.2018 06:47
quelle