我想执行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