我在Linux中的Java Runtime
有问题。我需要执行以下命令:
blastdbcmd -db'“ mydb”'-信息
所以我用这个Java代码:
String[] cmd = new String[] {blastdbcmd ,"-db", "\'","\"", mydb,"\"","\'","-info"}
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
但这是行不通的:每次我收到
java.lang.NullPointerException
异常时...有谁能够帮助我?
如果我尝试:
blastdbcmd -db“ mydb”-信息
它有效,但是如果我有类似以下命令,则必须使用简单的引号
blastdbcmd -db“ mydb mydb2”-信息
最佳答案
如果blastdbcmd期望带有文字双引号字符的参数,则它们为:
String[] cmd = new String[] {"blastdbcmd", "-db", "\"mydb mydb2\"", "-info"};
相当于
$ blastdbcmd -db "\"mydb mydb2\"" -info
如果不:
String[] cmd = new String[] {"blastdbcmd", "-db", "mydb mydb2", "-info"};
相当于
$ blastdbcmd -db "mydb mydb2" -info
关于java - Java Runtime.getRuntime()。exec()带有简单引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9326353/