java.awt.Desktop可以打开具有管理员权限的文件吗?

时间:2013-10-05 20:38:06

标签: java batch-file

我尝试使用Desktop类打开文件,这是我的代码:

try{
    //filePath is an instance String variable
    desktop.open(new File(filePath));
}catch(IOException ex){
    System.out.println(ex.getMessage());
}

但是文件中的问题必须由管理员打开然后才能运行。

例如;如果我们有这个命令

  

netsh wlan start hostednetwork

我将其保存在netsh.bat文件中,当我打开此文件时,它会自动运行,但不幸的是; Windows需要管理员权限才能运行此命令。

我认为将此文件(neths.bat)打开为管理员可以解决问题。

怎么做? ,这就是问题。

由于

1 个答案:

答案 0 :(得分:1)

Desktop.getDesktop().open(file);

SecurityException - 如果存在安全管理器且其SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读访问权,或者它拒绝AWTPermission(“showWindowWithoutWarningBanner”)权限,或者不允许调用线程创建子流程

实施例

if(file.canRead()) {
    Desktop.getDesktop().open(file);
}

或者

ProcessBuilder pb = new ProcessBuilder("netsh.bat");
pb.directory(new File(currentDir + "\\com\\project"));
Process p = pb.start();
int status = p.waitFor();