我想執行setup.exe安裝程序,該安裝程序在使用java 1.6的vista上安裝軟件。在Vista上啓動具有管理員權限的Java運行時進程
該用戶不是管理員。當我嘗試啓動該過程時,我收到錯誤消息:
CreateProcess error=740
這表明用戶沒有足夠的權限啓動進程。
我可以提交一個標誌或一個選項來表明過程應該以管理員權限執行嗎? Vista本身在菜單工具欄裏有這個功能。我可以在Java中使用這個函數嗎?
我叫下面的代碼
Runtime rt = Runtime.getRuntime();
Process process;
try {
String fileToExecute = new File(mFolder, mSetupFiles[0]).getCanonicalPath();
if (logger.isDebugEnabled()) {
logger.debug("Execute runtime process");
}
process = rt.exec(fileToExecute, null, mFolder);
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
if (logger.isDebugEnabled()) {
logger.debug("Wait until process is finished");
}
process.waitFor();
} catch (IOException e) {
throw new StartException(e);
} catch (InterruptedException e) {
throw new StartException(e);
}
糾正我,如果我錯了這一點,但似乎你問的方式,允許「的setup.exe」安裝程序覆蓋OS和給自己行政特權!當然,我可能會誤解,但這聽起來很危險。 – pavium 2009-09-14 11:56:03
我想要的是,Vista在打開帶權限的文件之前/期間要求輸入管理員用戶名/密碼。 – 2009-09-14 12:05:46
是的,我明白了,那會更好。 Vista要求輸入用戶名和密碼,然後繼續執行。 – pavium 2009-09-14 12:15:45