2013-11-10 3 views
0

Я хотел бы запустить ярлык с параметрами. Как я могу выполнить этот ярлык с параметрами в Java? (Как это не работает с ProcessBuilder я застрял еще раз ...)Открыть ярлык (.lnk) с парами параметров Java

"C:/Program Files/MyPrograms/MyShortcut.lnk" -s 3 -n 100 (что когда-нибудь эти строки параметров mean now)

Я успешно могу запустить свой ярлык без параметров.

код:

String directoryFile = "C:/Program Files/MyPrograms/MyShortcut.lnk" 

Desktop.getDesktop().open(new File(directoryFile)); 

Что я хочу:

String directoryFile = "C:/Program Files/MyPrograms/MyShortcut.lnk" 

Desktop.getDesktop().open(new File(directoryFile)+"-s 3 -n 100"); 

Это делает работу, но только для EXE-файлов; Я должен был бы открыть .LNK (выиграть ярлык) с параметрами

Process p = new ProcessBuilder("C:/Program Files/MyPrograms/MyFile.exe", 
              "-n", "100") 
             .start(); 

Благодаря

+0

Согласно http://stackoverflow.com/questions/4749660/execute-file-lnk-in-java это делает на самом деле работы. –

+0

Ошибка CreateProcess = 193,% 1 не является допустимым приложением Win32 \t на java.lang.ProcessBuilder.start (Неизвестный источник) – michael

ответ

0

Я думаю, что вам нужно декодировать LNK, чтобы получить фактический EXE путь/файл.

См: Windows shortcut (.lnk) parser in Java?

+0

Именно то, что я искал, большое вам спасибо. ProcessBuilder pb = new ProcessBuilder ("cmd", "/ c", "C: \\ path \\ shortcut.lnk", "-n", "100"); \t \t \t \t \t \t \t \t Процесс Процесс = pb.start(); – michael

4

Если кто-то ищет то же самое, это работает как шарм! (благодаря «Гленн Лейн» для связи со мной)

ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "C:\\path\\shortcut.lnk", "-n", "100"); Process process = pb.start(); 
Смежные вопросы