我尝试使用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
)打开为管理员可以解决问题。
但 怎么做? ,这就是问题。
由于
答案 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();