Запуск внешней программы из ярлыка

Я пытаюсь открыть программу со своего рабочего стола в java. Некоторые свойства значков на рабочем столе имеют расширение *.exe, но ярлыки других программ имеют расширение *.lnk. Так как это откроет программу с param расположением *.exe:

try {
        p = Runtime.getRuntime().exec(params);
        int result = p.waitFor();

        if (result != 0) {
            System.out.println("Process failed with status: " + result);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

это не работает для любого другого ярлыка с другим расширением.

Есть ли способ настроить правильное приложение, на которое указывает ярлык, и открыть его?


person Community    schedule 11.04.2013    source источник
comment
.lnk не является исполняемым форматом. Я точно не знаю, какое волшебство нужно для их открытия, но вы сможете заставить его работать, если вы запустите cmd -c path\to\MyShortcut.lnk и позволите командной строке выяснить, как он должен запускаться. Вы также можете поэкспериментировать с чем-то вроде пути к explorer.exe\to\shortcut.lnk.   -  person Wug    schedule 11.04.2013


Ответы (1)


Вы можете использовать java.awt.Desktop ; Desktop.getDesktop().open(новый файл("*.lnk"));

person user2268521    schedule 11.04.2013