[RESOLVIDO] Como verificar a disponibilidade de um comando do sistema operacional no java?

Um programa que estou desenvolvendo precisa executar um comando de prompt. O executável desse comando encontra-se na variável PATH do SO e sua localização pode variar de máquina para máquina.
Entretanto algumas máquinas podem não ter a variável PATH configurada corretamente, inviabilizando sua execução a partir de qualquer local.
Gostaria de saber se há alguma maneira de verificar pelo java se o comando em questão está disponível para execução em algum dos diretórios especificados na variável PATH (algo como "which <comando>" no linux).

Obrigado,

desconheço, mas existe comando pra setar a informação no PATH… que poderia ser a saída :wink:

Eu havia esquecido de informar que o mesmo arquivo jar deve servir tanto para Linux quanto para Windows.
Como não encontrei uma maneira mais “elegante” de resolver meu problema, escrevi o método abaixo para resolver da maneira mais grosseira mesmo.

    public static boolean checkCommand(String command){
        File test_file;
        if (System.getProperty("os.name").compareTo("Linux") == 0) {
            String[] paths = System.getenv("PATH").split(":");
            for(int i=0;i<paths.length;i++){
                if(!paths[i].endsWith("/")){
                    paths[i]=paths[i]+"/";
                }
                test_file=new File(paths[i]+command);
                if(test_file.exists() && test_file.isFile()){
                    return true;
                }
            }
        }
        if (System.getProperty("os.name").startsWith("Windows")) {
            String[] paths = System.getenv("PATH").split(";");
            for (int i = 0; i < paths.length; i++) {
                if (!paths[i].endsWith("\")) {
                    paths[i] = paths[i] + "\";
                }
                test_file = new File(paths[i] + command+".com");
                if (test_file.exists() && test_file.isFile()) {
                    return true;
                }
                test_file = new File(paths[i] + command+".exe");
                if (test_file.exists() && test_file.isFile()) {
                    return true;
                }
                test_file = new File(paths[i] + command+".bat");
                if (test_file.exists() && test_file.isFile()) {
                    return true;
                }
            }
        }
        return false;
    }

Embora o método acima tenha cara corpo e cheiro de POG, funcionou e está resolvendo o problema provisóriamente. Só não testei ainda no Windows.

Obrigado,