2012-03-29 168 views
0

我想用java swing创建一个GUI。从那里我必须运行linux系统命令。我尝试使用exec()。但是,如果exec()函数包含单引号,则无法解析该字符串。我所使用的代码如下 -从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

向上分割的参数到一个数组代替,一个串对于每个参数,并使用exec-方法,该方法作为代替String[],其通常适用于参数更好。 Somethign沿着线:

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

或任何你确切的参数是什么。

+0

非常感谢。有效。我的程序运行完美。 – 2012-03-29 08:30:00