Rodar comandos CMD no JRuby

3 respostas
RChaves

Olá, estava programando em jruby quando me deparei com um problema, estou tentando usar um código para executar um comando em DOS. Usei as seguintes linhas:

line = "dir" puts %x(#{line})

isso exibe o diretório na tela, o problema, é que isso parece funcionar em ruby, mas em jruby não.
quando eu tento
ruby cmd.rb
ele executa o código, exibindo o diretório, mas quando eu tento
jruby cmd.rb
dá o seguinte erro:
:1:in `actionPerformed’: Cannot run program “dir” (in directory “C:\Users\Juninho\Documents\NetBeansProjects\ProgramaJRuby\lib”): CreateProcess error=2, O sistema não pode encontrar o arquivo especificado (IOError)

alguém sabe qual o problema / como resolver / outra maneira de fazer isso?

3 Respostas

E

Os comandos do interpretador de comandos (cmd.exe), como o “dir” e o “copy”, devem ser interpretados pelo interpretador de comandos.

Em vez de “dir”, use “cmd /c dir”.

RChaves

bom, não resolveu, mas o erro mudou, agora o erro q dá eh esse:
‘dir"’ nÆo ‚ reconhecido como um comando interno
ou externo, um programa oper vel ou um arquivo em lotes.

ps.: No Ruby funciona das duas maneiras

E

Dá a impressão, por sua mensagem de erro, que ele está tentando executar o comando

cmd /c dir"

(Olhe a aspa a mais).

Como não tenho o JRuby aqui, não tenho a menor ideia de que ele esteja fazendo.

Criado 21 de setembro de 2009
Ultima resposta 21 de set. de 2009
Respostas 3
Participantes 2