How can I set/update PATH variable from within java application on Windows?

一曲冷凌霜 提交于 2019-12-18 07:23:13

问题


Something equivalent to this command line:

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

To run my application, some thing has to be in a PATH variable. So I want at the program beginning catch exceptions if program fails to start and display some wizard for user to select the installation folder of a program that needs to be in a PATH. The I would took that folder's absolute path and add it to the PATH variable and start my application again.

EDIT:

That "something" is VLC player. I need it's installation folder in PATH variable (for example: C:\Program Files\VideoLAN\VLC). My application is single executable .jar file and in order to use it, VLC needs to be in a PATH. So when the user first starts my app, that little wizard would pop up to select the VLC folder and then I would update PATH with it.


回答1:


You can execute commands using the Process object, you can also read the output of that using a BufferedReader, here's a quick example that may help you out:

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");
    }
}


来源:https://stackoverflow.com/questions/8350663/how-can-i-set-update-path-variable-from-within-java-application-on-windows

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!