Problemas executar comandos linux (variáveis ambiente)

Estou com um problema na execução de comandos no linux pois não consigo setar variáveis de ambiente.

O comando que eu preciso executar é “poketool testeprog.c -f_todas_”
Este comando exige algumas variáveis setas. Se eu executar diretamente no terminal, funciona corretamente. Meu .bashrc tem as seguintes variáveis:

PATH0="/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin"
PATH1=".:/usr/local/poketool/bin"
PATH2=".:/usr/local/poketool/bin/interface"
export PATH="${PATH0}:${PATH1}:${PATH2}"
export POKEBIN="/usr/local/poketool/bin"
export POKETABS="/usr/local/poketool/bin/poketabs"
export LITABS="/usr/local/poketool/bin/litabs"

Código utilizando Runtime.getRuntime().exec

String [] array = new String[3]; array[0] = "poketool"; array[1] = nomeArquivo; array[2] = "-f_todas_"; String [] env = new String[4]; env [0] = "PATH=/usr/local/poketool/bin"; env [1] = "POKEBIN=/usr/local/poketool/bin"; env [2] = "POKETABS=/usr/local/poketool/bin/poketabs"; env [3] = "LITABS=/usr/local/poketool/bin/litabs"; System.out.println(System.getenv()); Runtime.getRuntime().exec("pokeaval",env,diretorioPoketool);

Código utilizando ProcessBuilder

            ProcessBuilder pb = new ProcessBuilder("poketool", nomeArquivo, "-f_todas_"); 
            Map<String, String> env1 = pb.environment();
            env1.put("PATH", env1.get("PATH") + ":/usr/local/poketool/bin"); 
            env1.put("POKEBIN","/usr/local/poketool/bin");
            env1.put("POKETABS","/usr/local/poketool/bin/poketabs");
            env1.put("LITABS","/usr/local/poketool/bin/litabs");
            pb.directory(diretorioPoketool);
            System.out.println(pb.environment());
            Process p = pb.start(); 

O erro gerado é o mesmo para os dois trechos de programa (abaixo). Acredito que o erro gerado acontece porque as variáveis de ambiente não estejam setadas corretamente.
java.io.IOException: Cannot run program “poketool” (in directory “/trebam/compress/pok”): java.io.IOException: error=2, Arquivo ou diretório inexistente

Os arquivos e diretórios estão corretos, até porque se eu chamar o comando “gcc - o exe testeprog.c” este executa corretamente dentro do diretório.

Por favor me ajudem. Preciso fazer isso funcionar pra conseguir concluir a implementação do meu mestrado.

Alexandre Lenz
email e gtalk: arlenz@gmail.com
msn: alexandre_lenz2@hotmail.com

EDIT (Moderador) - Deixei o título da mensagem um pouco mais curto, para evitar um bug do JForum que está impedindo as pessoas de postarem respostas.

 ProcessBuilder pb = new ProcessBuilder("/usr/local/poketool/bin/poketool", nomeArquivo, "-f_todas_");   

Tente não confiar muito no PATH.

Muito obrigado funcionou tudo certinho. Já aprendi…nunca confiar no path hehehe.
Mas de qualquer forma tive outro problema depois onde o programa chamado precisava de entrada de dados, daí acabei fazendo um shell script e chamando tudo dentro do shell script.