Como localizar arquivos?RESOLVIDO

Eu queria executar um arquivo pdf via código java. Daí faço o seguinte:

Runtime.getRuntime().exec("C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe C:\meu_arquivo.pdf");

Que legal né, isto funciona que é uma beleza.
No entanto, e se meu AcroRd32.exe estiver instalado em outro local diferente disto?
Na verdade eu queria automatizar, passando o parâmetro “C:\meu_arquivo.pdf”, e deixar que um método qualquer LOCALIZE o executável, independente de qual computador esteja, ou qual local onde o AcroRd32.exe esteja instalado.
Eu cheguei a fazer isto, mas tenho até vergonha de mostrar o código, com vários new File espalhados e um monte de listas de diretórios. Será que não tem algum código no java que LOCALIZE arquivos sem passar por isto?
Obrigado a todos.

Acho que sua abordagem pode ser um pouco diferente.

O Sistema Operacional sabe onde fica o programa default para abrir arquivos PDF.

Não tenho a mínima idéia de como fazer isso, mas é uma dica para direcionar suas pesquisas.

Veja se consegue recuperar isso do SO (rápido) ao invés de buscar um arquivo no disco (MUITO lento).

É isto mesmo, o SO saberia qual executável seria disparado.
A questão é que não tenho idéia em que classe do java eu vou buscar isto!
Espero que alguém aí já tenha feito isto e possa me ajudar.
Obrigado.

Runtime.getRuntime().exec(" C:\meu_arquivo.pdf");

só isto não resolve

Não, de jeito nenhum! Assim não funciona porque você tem de especificar qual aplicativo irá abrir o arquivo.
A exceção gerada aqui é: java.io.IOExecption “…não é um aplicativo Win32 válido…”

Incrível!

Veja várias soluções eficientes:

[code]try {
//Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+ “C:\manual.pdf”); //executa o arquivo no reader
//Runtime.getRuntime().exec("cmd /c start acrord32 " +“C:\manual.pdf”); //executa o arquivo no reader
//Runtime.getRuntime().exec("cmd /c start acrobat " +“C:\manual.pdf”); //executa o arquivo no acrobat
Runtime.getRuntime().exec("cmd /c start winword " +“D:\manual.doc”); //executa um documento word
//… e por aí vai

} catch (IOException e) {
e.printStackTrace();
} [/code]
Mas só executa em Windows versão XP em diante (mas e daí? será que alguém ainda usa win98?)
Está resolvido mas ainda prevalece a dúvida: qual a melhor maneira de LOCALIZAR UM ARQUIVO NO SISTEMA OPERACIONAL (não de forma manual, e sim automática, como no Explorador de Arquivos do Windos: digito o nome do arquivo e mando localizar)?