Открыть ярлык (.lnk) со строками параметров Java

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

"C: / Program Files / MyPrograms / MyShortcut.lnk" -s 3 -n 100 (что сейчас означают эти строки параметров)

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

код:

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

Спасибо


person michael    schedule 10.11.2013    source источник
comment
Согласно stackoverflow.com/questions/4749660/execute-file -lnk-in-java действительно работает.   -  person Robin Green    schedule 11.11.2013
comment
Ошибка CreateProcess = 193,% 1 не является допустимым приложением Win32 в java.lang.ProcessBuilder.start (неизвестный источник)   -  person michael    schedule 11.11.2013


Ответы (2)


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

См .: Парсер ярлыков Windows (.lnk) в Java?

person Glenn Lane    schedule 10.11.2013
comment
Именно то, что я искал, большое вам спасибо. ProcessBuilder pb = new ProcessBuilder (cmd, / c, C: \\ путь \\ shortcut.lnk, -n, 100); Процесс process = pb.start (); - person michael; 11.11.2013

Если кто-то ищет то же самое, это сработало отлично! (спасибо 'Glenn Lane' за ссылку)

ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "C:\\path\\shortcut.lnk", "-n", "100"); Process process = pb.start();
person michael    schedule 10.11.2013