- PR -

コマンド実行

1
投稿者投稿内容
ノリ
常連さん
会議室デビュー日: 2004/09/24
投稿数: 32
投稿日時: 2004-11-19 16:45
度々すいません。
また質問なのですがRuntime#exec()を使って kterm -e sh -c './input; read line' を実行しようとしているのですがktermが起動するとエラー文がでてすぐに消えてしまいます。
何とかエラー文は見れたのですがよくわかりません。
エラー文
./input : -c: line1 : unexpected EOF while looking for matching "'"
./input : -c: line2 : syntax error : unexpected end of file
ターミナル上ではエラーもなく実行できるのですがなにか良い解決法はないでしょうか?
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2004-11-19 17:34
Runtime#exec() は引数の型によってたくさんありますが、どれを使っていますか?

もしかして、
Runtime#exec(String) などのコマンドライン全体を一個のStringで渡すメソッドは
シングルクォートを認識してくれないという、単純な問題かも・・・
ノリ
常連さん
会議室デビュー日: 2004/09/24
投稿数: 32
投稿日時: 2004-11-19 18:14
早速レスありがとうございます。
Runtime#exec()はRuntime#exec(new String[]{"kterm","-e","sh","-c","'","./input",";","read","line"});
とやっています。
すいません。長くなって。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-11-19 18:24
引用:

ノリさんの書き込み (2004-11-19 18:14) より:
早速レスありがとうございます。
Runtime#exec()はRuntime#exec(new String[]{"kterm","-e","sh","-c","'","./input",";","read","line"});


最後にシングルクォーテーションが必要なのでは?
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2004-11-19 19:27
コマンドラインから
kterm -e sh -c './input; read line'
と入力するのと同じことをしたいなら、

String[] の中身は、
{ "kterm", "-e", "sh", "-c", "./input; read line" }
でしょう。
ノリ
常連さん
会議室デビュー日: 2004/09/24
投稿数: 32
投稿日時: 2004-11-19 20:39
ukさん
すいません。うっかり忘れてました。次回から気をつけるようにします。
ご指摘ありがとうございます。

coasmさん
無事同じ事をさせることができました。
ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)