Problema com o Runtime.getRuntime().exec()

9 respostas
H

To kerendo q meu programa abra uns arquivos (pdf ou doc), dai coloquei o metodo Runtime.getRuntime().exec(), ta dando uns paus ai:

public static void main(String[] args) {
        try {
            Runtime.getRuntime().exec("AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

Excecao gerada:

Compiling 1 source file to F:\NetBeans workspace\ControleProvas\build\classes

F:\NetBeans workspace\ControleProvas\src\provas\teste.java:23: illegal escape character

Runtime.getRuntime().exec(AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf);

F:\NetBeans workspace\ControleProvas\src\provas\teste.java:23: illegal escape character

Runtime.getRuntime().exec(AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf);

F:\NetBeans workspace\ControleProvas\src\provas\teste.java:23: illegal escape character

Runtime.getRuntime().exec(AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf);

F:\NetBeans workspace\ControleProvas\src\provas\teste.java:23: illegal escape character

Runtime.getRuntime().exec(AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf);

F:\NetBeans workspace\ControleProvas\src\provas\teste.java:23: illegal escape character

Runtime.getRuntime().exec(AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf);

F:\NetBeans workspace\ControleProvas\src\provas\teste.java:23: illegal escape character

Runtime.getRuntime().exec(AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf);

6 errors

BUILD FAILED (total time: 0 seconds)

Nao pode ter “:” e espacos??? Alguem sabe como arrumo p executar o pdf neste diretorio, deve ser besteira mas n to acertando, vlws…

9 Respostas

ClashFM

Tenta inverter as barras e duplica-as:

"...C://Documents and Settings//hlds//...");

A contra-barra () é usada como “escape char” no Java, pra vc poder colocar caracteres de controle ("\n" = new line, por exemplo).

Cheers!

T
Runtime.getRuntime().exec("AcroRd32 \"C:\\Documents and Settings\\hlds\\Meus documentos\\Cefet\\Java\\curso_java_III.pdf\"");
ClashFM

Bem lembrado, thingol… Taí um uso pro escape char :wink:

H

eu tentei tds os jeitos q vcs colocaram aki, mas deu o msm erro:

java.io.IOException: CreateProcess: AcroRd32 C:\Documents and Settings\hlds\Meus documentos\Cefet\Java\curso_java_III.pdf error=2

at java.lang.ProcessImpl.create(Native Method)

at java.lang.ProcessImpl.(ProcessImpl.java:81)

at java.lang.ProcessImpl.start(ProcessImpl.java:30)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)

at java.lang.Runtime.exec(Runtime.java:591)

at java.lang.Runtime.exec(Runtime.java:429)

at java.lang.Runtime.exec(Runtime.java:326)

at provas.teste.main(teste.java:23)

alguem sabe oq danado eh isso? odeio ficar “rodando” c problema besta,ajuda ai plis.

H

consegui fui atras e axei, vlws

bebad

mas e ai qual a resposta pra isso ???

T

Quando há espaços em um nome de arquivo, você deve passar esse nome entre aspas. É só tentar executar o mesmo comando em uma linha de comando normal (Command Prompt).

R

como arrumo isso
Host_error:PF_Preache_generic_1:Bad String class
pode me ajuda meo msn
[email removido] e como faço pra abrir as portas firewal

_Zell_

hlds, quando você descobre como resolver o problema posta a solução para as demais usuários do forum.

Pessoal, eu estava com o mesmo problema. Pesquisei e também encontrei uma solução. Por exemplo, no meu caso eu queria abri um arquivo PDF. Para isso eu utilizei a mesma ideia de vocês só que com um “cmd /c” na frente. E para não ter problemas com os espaços eu coloquei o caminho do meu PDF entre aspas. Dessa forma ficou assim:

Runtime.getRuntime().exec("cmd /c \"C:\\Documents and Settings\\Zell Ruskea\\Desktop\\Meu Texto.pdf\"");

Essa solução eu decobri aqui mesmo no forum graças ao usuário lucasportela. Aqui está o tópico: http://www.guj.com.br/java/231875-executar-comando-cmd

Abraço!

Criado 3 de julho de 2006
Ultima resposta 24 de nov. de 2011
Respostas 9
Participantes 6