我目前正在開發一個將多個便攜式系統管理工具(主要是sysinternal工具)分組的研究工具。我有一個簡單的JButton框架。Java - 使用管理權限執行EXE
我想要做什麼? - 隨着我的java文件,我有一個exe文件(例如,目的讓我們使用config.exe)需要提升權限運行。
用戶點擊按鈕後,我該如何執行此文件?
編輯:我只是找到了另一種方式來做到這一點。我從我的jar文件中創建了一個exe文件,然後轉到兼容性選項卡並選中「始終以管理員身份運行」感謝您的全力幫助。
我目前正在開發一個將多個便攜式系統管理工具(主要是sysinternal工具)分組的研究工具。我有一個簡單的JButton框架。Java - 使用管理權限執行EXE
我想要做什麼? - 隨着我的java文件,我有一個exe文件(例如,目的讓我們使用config.exe)需要提升權限運行。
用戶點擊按鈕後,我該如何執行此文件?
編輯:我只是找到了另一種方式來做到這一點。我從我的jar文件中創建了一個exe文件,然後轉到兼容性選項卡並選中「始終以管理員身份運行」感謝您的全力幫助。
首先找到其中的exe文件被創建located.Then命名爲
「Your_Exe_File_Name名爲」 .exe.manifest
只要把下面的內容保存到一個文本文件的目錄該文件並保存。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.1.1.1"
processorArchitecture="X86"
name="MyApp.exe"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
現在在您的java代碼中使用它來調用exe.It將被自動調用Admin Rights。
Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2",).start();
InputStream is = process.getInputStream();//Get an inputstream from the process which is being executed
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);//Prints all the outputs.Which is coming from the executed Process
}
我認爲這會對您有所幫助。
看到你試圖運行一個exe
文件,我會認爲這是Windows。
在Java執行外部命令的標準方法是.exec
命令:
Runtime.getRuntime().exec("path\to\config.exe");
現在,讓config.exe
以管理員運行,你需要做的是將其設置爲從Windows管理員身份運行什麼。在資源管理器中右鍵單擊該文件,然後選擇Properties
。選擇Compatibility
選項卡並在底部附近檢查Run this program as administrator
。現在,無論程序何時運行,它在運行之前都會要求提升權限。
你好,謝謝你的有用信息。我正在使用Launch4j將清單添加到exe文件,但在編譯完exe後,我總是收到錯誤「應用程序未能啓動,因爲它的並排配置不正確。」我怎麼能克服這個? Thx –
好吧,在將清單嵌入到exe之前,您是否運行過它。結果如何? – ShihabSoft
是的,我可以運行它,但我不能執行exe。我有一個關於權限的奇怪的錯誤。我的程序有兩個主要的功能,改變網絡接口的IP地址和打開其他程序,但現在,如果我右鍵單擊exe文件和「以管理員身份執行」,我可以更改網絡接口ip但不能運行exes。如果我只是執行jar文件,我可以運行exes但不能更改ip地址。對此有何暗示? –