я объясню, как вы получите повышенные приложения Java
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 является примером просто называют 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");
}
}
Чем вы получили повышенную программу. Я Recommand вам - Вам нужно преобразовать в двоичную обертку, как Launch4j или Parcle Чем вы можете нажать - (. Сделали Java Swing или AWT) При создании установщика
Я надеюсь, что у вас есть хорошее решение :) - Если вы использовать Linux или Mac OS X, чем вам нужно использовать Parcle двоичную обертку или другую оболочку, если вы знаете ...
// EDIT хорошая идея по Kaptkaos чем вы пишете просто:
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");
}
}
не забудьте используйте '' и "", если -jar .jar из -Argument of Start-Process. Примечание Не забывайте - Если вы используете рабочий каталог и банку файл должен быть в рабочем примере каталога \ myJar.jar Java \ RunAsAdminExample.class Чем вы можете увидеть повышенный Java с аргументом :)
С наилучшими пожеланиями..!
Проблема, конечно, в том, что «исполняемый файл» будет JVM, а не вашим собственным кодом. И поскольку манифест применяется к JVM, он применим к чему-либо, управляемому этой JVM. – MSalters
Что делать, если у вас есть обертка exe, запускающая java? Будет ли доступ администратора доступным для дочернего процесса (jvm)? – Cal
@Cal - Да - как только процесс будет повышен, все процессы, которые он создает, будут повышенными. Высота UAC буквально меняет пользователя, что приложение работает как, и это улица с односторонним движением - вы можете поднимать, но вы не можете отбросить назад. –