Как я могу установить / обновить переменную PATH из приложения Java на Windows? - PullRequest
1 голос
/ 02 декабря 2011

Что-то эквивалентное этой командной строке:

set PATH=%PATH%;C:\Something\bin

Чтобы запустить мое приложение, что-то должно быть в переменной PATH.Поэтому я хочу, чтобы в начале программы перехватывались исключения, если программа не запускается, и отображается какой-то мастер для пользователя, чтобы выбрать папку установки программы, которая должна находиться в переменной PATH.Я бы взял абсолютный путь к этой папке, добавил его в переменную PATH и снова запустил мое приложение.

EDIT :

Это "что-то" - это проигрыватель VLC.Мне нужна его установочная папка в переменной PATH (например: C: \ Program Files \ VideoLAN \ VLC).Мое приложение представляет собой один исполняемый файл .jar, и для его использования VLC должен быть в PATH.Поэтому, когда пользователь впервые запускает мое приложение, появляется этот маленький мастер, чтобы выбрать папку VLC, а затем я обновляю PATH с ее помощью.

1 Ответ

3 голосов
/ 02 декабря 2011

Вы можете выполнять команды, используя объект Process, вы также можете прочитать выходные данные этого объекта, используя BufferedReader, вот краткий пример, который может вам помочь:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String args[]) {
        try {
            Process proc = Runtime.getRuntime().exec("cmd set PATH=%PATH%;C:\\Something\\bin");
            proc.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));

            String line = reader.readLine();
            while (line != null) {
                //Handle what you want it to do here
                line = reader.readLine();
            }
        } 
        catch (IOException e1) { 
            //Handle your exception here
        }
        catch(InterruptedException e2) {
            //Handle your exception here
        }

        System.out.println("Path has been changed");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...