我是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
请指导我如何实现这一目标?
答案 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。