Внешне исполняемое приложение не работает для какого-либо приложения? - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу запустить программу из приложения Java, если повезет.Большинство программ запускаются без проблем, но некоторые, кажется, не работают должным образом (?).

Код, который я использую, очень прост:

private static void exec() {
    ProcessBuilder builder = new ProcessBuilder("C:\\Users\\Fillipuster\\AppData\\Local\\Discord\\Update.exe");

    try {
        builder.start();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

... и работает почтивсе исполняемые файлы (* .exe). Discord специально помещен в пример, так как это одна из программ, вызывающих эту проблему.(вместе с Messenger для Windows и GOG Galaxy ).

Поведение простое и одинаковое для всех исполняемых файлов, вызывающих это;командная строка быстро появляется и затем быстро исчезает (каламбур) - в результате приложение не запускается.

Просеивание через Google и переполнение стека оказались тщетными усилиями, и на данный момент я нахожусь вполная потеря.

Любая помощь / вклад очень ценится.

1 Ответ

0 голосов
/ 20 сентября 2018

Благодаря Джону , который указал, что даже запуск файла Update.exe"вручную" приводит к тому же поведению, я обнаружил проблему.

Кажется, что при успешном запуске Discord, на самом деле запускается ярлык, который дает параметр для исполняемого файла.В этом случае:

--processStart Discord.exe

Это означает, что следующий код фактически запустит Discord:

private static void exec() {
    ProcessBuilder builder = new ProcessBuilder("C:\\Users\\Fillipuster\\AppData\\Local\\Discord\\Update.exe", "--processStart", "Discord.exe");

    try {
        builder.start();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Спасибо Джону и всем остальным комментаторам.

...