Java Runtime.getRuntime().exec() 带有简单的引号
我在 Linux 中遇到 Java Runtime
问题。我需要执行这个命令:
blastdbcmd -db '"mydb"' -info
所以我使用这个Java代码:
String[] cmd = new String[] {blastdbcmd ,"-db", "\'","\"", mydb,"\"","\'","-info"}
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
但它不起作用:每次我收到 java.lang.NullPointerException
异常时... 有人可以帮助我吗?
如果我尝试:
blastdbcmd -db“mydb”-info
它可以工作,但是如果我有类似的命令,则需要简单的引号
blastdbcmd -db“mydb mydb2”-info
I have a problem with Java Runtime
in Linux. I need to execute this command:
blastdbcmd -db '"mydb"' -info
So I use this Java code :
String[] cmd = new String[] {blastdbcmd ,"-db", "\'","\"", mydb,"\"","\'","-info"}
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
but it doesn't work: every time I get a java.lang.NullPointerException
exception...
can anybody help me?
If I try with :
blastdbcmd -db "mydb" -info
it works, but the simple quotes are necessary if I have a command like
blastdbcmd -db "mydb mydb2" -info
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果blastdbcmd需要带有文字双引号字符的参数then:
这相当于
如果不是:
这相当于
If the blastdbcmd is expecting arguments with literal double quote characters them:
which is equivalent to
If not:
which is equivalent to