1

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

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

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

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

netsh wlan 启动托管网络

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

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

但是怎么做呢?,是这里的问题。

谢谢

4

1 回答 1

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();
于 2013-10-05T20:56:34.657 回答