从java执行终端命令

时间:2014-03-09 20:20:55

标签: java terminal

我是java新手并且正在学习它。我想从java类运行命令行程序。

这是我想要运行的命令:(仅限linux)

path/to/folder/$ echo "Inhibition of NF-kappaB activation reversed the anti-apoptotic effect of isochamaejasmin." | ./geniatagger

这将为我提供我想要存储在java对象中的输出。

字符串输出:

抑制抑制NN B-NP O. IN B-PP O. NF-κBNF-kappaB NN B-NP B蛋白 激活激活NN I-NP O. 反向反向VBD B-VP O. DT B-NP O. 抗细胞凋亡抗细胞凋亡JJ I-NP O. 效果NN I-NP O. IN B-PP O. isochamaejasmin isochamaejasmin NN B-NP O. 。 。 。 O O

请指导我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

命令行解释器(通常称为shell)是Java不支持的典型平台特定功能。这并不是说这是不可能的,但你必须问自己,你是否希望这个功能在所有平台上运行。

如果您不关心多平台,可以查看Runtime.exec

E.g:

Runtime.getRuntime().exec("cmd /c echo Hello World!");

如果你关心,也许你最好直接从Java做同样的事情。大多数shell命令可以直接从Java实现而无需太多代码。然后它将是跨平台的,性能通常会好得多。

如果您决定继续调用shell命令,要对其输出进行操作,请了解如何访问标准输入/输出流。请看this example

<强>更新

我想我现在看到你可能想要编写一个程序./geniatagger来接受来自命令行的输入,例如:管道传输给它的'echo'的输出等?

如果是这样,请查看标准输入流System.in

相关问题