tôi sẽ giải thích làm thế nào để bạn có được ứng dụng java cao
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 là ví dụ chỉ cần gọi 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");
}
}
Hơn bạn đã có chương trình nâng cao. Tôi recommand bạn - Bạn cần chuyển đổi sang wrapper nhị phân như Launch4j hoặc Parcle hơn bạn có thể nhấp vào - (. Làm bằng Java Swing hoặc AWT) Nếu bạn tạo bộ cài đặt tùy chỉnh
tôi hy vọng bạn có giải pháp tốt :) - Nếu bạn sử dụng Linux hoặc Mac OS X hơn bạn cần sử dụng Parcle wrapper nhị phân hoặc wrapper khác nếu bạn biết ...
// EDIT ý tưởng tốt bởi Kaptkaos hơn bạn viết đơn giản:
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");
}
}
Đừng quên sử dụng '' và '' nếu -jar .jar từ -Bài viết của quá trình bắt đầu. Lưu ý đừng quên - Nếu bạn sử dụng làm việc thư mục và tập tin jar phải làm việc thư mục ví dụ \ java MyJar.jar \ RunAsAdminExample.class hơn bạn có thể thấy java cao với lập luận :)
Trân trọng..!
Vấn đề tất nhiên là "thực thi" sẽ là JVM, không phải mã của riêng bạn. Và vì tệp kê khai áp dụng cho JVM, nó áp dụng cho bất kỳ thứ gì được chạy bởi JVM đó. – MSalters
Điều gì sẽ xảy ra nếu bạn có exe bao bọc để khởi chạy java? Quyền truy cập quản trị viên có được thừa kế bởi tiến trình con (jvm) không? – Cal
@Cal - Có - khi quá trình được nâng lên, tất cả các quá trình mà nó tạo sẽ được nâng lên. Độ cao UAC theo nghĩa đen thay đổi người dùng mà ứng dụng đang chạy và đó là đường một chiều - bạn có thể nâng cao, nhưng bạn không thể thả xuống. –