vi spiegherò come si fa a ottenere un'applicazione Java elevata
import java.io.IOException;
public class RunAsAdminExample {
public static void main(String[] args) throws IOException {
Process myappProcess = Runtime.getRuntime().exec("powershell.exe Start-Process <program.exe> -verb RunAs");
}
}
program.exe è esempio basta chiamare notepad.exe
import java.io.IOException;
public class RunAsAdminExample {
public static void main(String[] args) throws IOException {
Process myappProcess = Runtime.getRuntime().exec("powershell.exe Start-Process notepad.exe -verb RunAs");
}
}
di quello che hai ottenuto il programma elevata. vi Consiglierei - È necessario convertire in involucro binario come Launch4J o Parcle Than è possibile fare clic - (. Fatta da Java Swing o AWT) Se si crea installazione personalizzato
Spero che tu abbia buona soluzione :) - Se utilizzare Linux o Mac OS X di quanto è necessario utilizzare Parcle involucro binario o altro involucro se si sa ...
// EDIT buona idea da Kaptkaos Than si scrive semplice:
import java.io.IOException;
public class RunAsAdminExample {
public static void main(String[] args) throws IOException {
Process myappProcess = Runtime.getRuntime().exec("powershell.exe Start-Process -FilePath java.exe -Argument '-jar runasadmin.jar' -verb RunAs");
}
}
non dimenticate di usa "" e "" if -jar .jar da -Argument di Start-Process. Nota Non dimenticare - Se si utilizza directory di lavoro e vaso file deve essere nella directory di lavoro esempio \ myjar.jar java \ RunAsAdminExample.class di quanto si può vedere elevata Java con argomento :)
i migliori saluti..!
Il problema, naturalmente, è che "eseguibile" sarà la JVM, non il tuo codice. E poiché il manifest si applica alla JVM, si applica a qualsiasi cosa venga eseguita da quella JVM. – MSalters
Cosa succede se si dispone di un wrapper exe che avvia java? L'accesso amministratore sarà ereditato dal processo figlio (jvm)? – Cal
@Cal - Sì - una volta elevato un processo, tutti i processi creati verranno elevati. L'elevazione UAC cambia letteralmente l'utente che l'applicazione è in esecuzione come, ed è una strada a senso unico: è possibile elevare, ma non è possibile tornare indietro. –