2013-10-05 3 views
1

Я попытался открыть файл, используя Desktop класс, это мой код:Может ли java.awt.Desktop открыть файл с правами администратора?

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

Но проблема здесь файл должен быть открыт с администратором, то он будет бежать.

Например, если мы имеем эту команду

Netsh WLAN начало hostednetwork

Я сохранил его в netsh.bat файле, когда я открываю этот файл, он будет работать автоматически, но, к сожалению; для выполнения этой команды для окон требуется привилегия администратора.

Я думаю, что открытие этого файла (neths.bat) как администратор решает проблему.

Но Как это сделать?, вопрос здесь.

Благодаря

+1

Рассматривает запуск приложения Java в качестве администратора? –

+0

@PhilipWhitehouse: не приложение Java, любое приложение на компьютере, которому требуется разрешение. Извините за поздний комментарий :) –

+0

В java нет возможности запуска в качестве администратора. Если возможно, то plz делит его. Я также ищу способ запуска командной строки с помощью admin privilage. –

ответ

1
Desktop.getDesktop().open(file); 

SecurityException - если менеджер безопасности существует и метод SecurityManager.checkRead (java.lang.String) запрещает доступ на чтение к файлу, или это отрицает AWTPermission ("showWindowWithoutWarningBanner") разрешение , или вызывающей нити не разрешено создавать подпроцесс

Ex.

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(); 
+0

Спасибо, но это не помогло, оно не сработает. –

Смежные вопросы