Запуск Powershell из Java
В настоящее время я пытаюсь выяснить, могу ли я запустить ярлык программы в файле windows (.lnk), из powershell, в Java. Я знаю, что есть лучшие инструменты для использования, и что я должен просто напрямую взаимодействовать с.exe, но, пожалуйста, приколите меня, это для целей тестирования.
По сути, мне нужно запустить файл.lnk через powershell из java. Главное затруднение, которое у меня сейчас есть, заключается в том, что команда, которая должна работать изнутри PowerShell
"start \"C:/Adobe Reader X.lnk\""
В IDE это будет правильно запускать Adobe Reader, но в Java после инициализации ProcessBuilder и попытки пройти через этот аргумент, он не работает. Однако он будет запускать процесс powershell. Вот код того, что я передаю моему методу:
String[] command2 = { /*"cmd.exe", "/C",*/ "powershell", "-Command","&","start \"C:/Adobe Reader X.lnk\"" };
Как видите, я также попытался запустить его из CMD. Вот мой код Run. Я прочитал вывод (которого нет ни одного), я просто хочу запустить Adobe Reader в потоке, а затем я могу проверить, запущен ли процесс через Tasklist.
public void run() {
String line2;
ProcessBuilder probuilder = new ProcessBuilder(command);
Process process = null;
try {
process = probuilder.start();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
java.io.InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
// create a reader for the return data from cmd.
StringBuilder sb = new StringBuilder();
// create a string builder to automate the string addition
try {
while ((line2 = br.readLine()) != null) {// build the input
// string from
// cmd.
sb = sb.append(line2);
System.out.println(line2);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
После этого я просто запускаю процесс powershell, но Adobe Reader не запускается и даже не запускается. Любая помощь будет принята с благодарностью.