2012-03-29 17 views
0

私は、Java swingを使用してGUIを作成しようとしています。そこから私はLinuxのシステムコマンドを実行する必要があります。私はexec()を使ってみました。しかし、一重引用符が含まれていると、exec()関数は文字列を解析できません。私が使用しているコードはfollows-Javaプログラム内からlinuxコマンドを実行する

Process p = Runtime.getRuntime().exec("cpabe-enc pub_key message.txt '(it_department or (marketing and manager))'") 
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); 

ようですが、私のように、プログラムを実行すると、私はエラーを取得しています - "'("で構文エラー。

私は

Process p = Runtime.getRuntime().exec("cpabe-enc pub_key message.txt default") 

を書き、同じコマンドを実行するには、助けてください。あなたの助けを前にありがとう。

答えて

1
代わりに配列にパラメータを分割

、各引数に1つの文字列、および一般的な引数のためのより良い作品代わりString[]として取るのexecメソッドを使用します。線に沿って Somethign:

Runtime.getRuntime().exec(new String[] {"cpabe-enc", "pub_key", "message.txt", "(it_department or (marketing and manager))"}); 

か、あなたの正確なパラメータが何であるかを何でも。

+0

おかげで多くのことをコーディングハッピー。出来た。私のプログラムは完璧に動作しています。 –

0

私は最近、この種の問題を解決しました。私は...ここ

はリンクが、それはあなたを助けるかもしれない願っています... ..あなたのスイングアプリケーションのシナリオに非常に似ているボタンをクリックしたときに、シェルスクリプトを呼び出すためのJavaFXを使っていた

How to code in java to run unix shell script which use rSync internally in windows environment using cygwin?

Getting error in calling shell script in windows environment using java code and cygwin...!

... :)

関連する問題