我是刚开始学习java的。我想从java类运行一个命令行程序。
这是我想要运行的命令:(只有linux)
path/to/folder/$ echo "Inhibition of NF-kappaB activation reversed the anti-apoptotic effect of isochamaejasmin." | ./geniatagger这将给出我想要存储在java对象中的输出。
字符串输出:
抑制IN B-PP O NF-kappaB NF-kappaB NN -NP蛋白激活NP的NP逆转VBD B,DT抗凋亡抗凋亡JJ效应对B-PP O异辛辣茉莉的NP效应。。。O-O
请指导我如何做到这一点?
发布于 2014-03-09 20:33:27
命令行解释器(通常称为shell)是Java不支持的典型平台特性。这并不是说这是不可能的,但你必须问自己,你是否想让这个特性在所有平台上工作。
如果您不关心多平台,则可以查看Runtime.exec。
例如:
Runtime.getRuntime().exec("cmd /c echo Hello World!");如果您确实关心,也许您最好直接从Java中做同样的事情。大多数情况下,shell命令可以直接从Java获得,而不需要太多的代码。然后,它将是跨平台和性能通常会更好。
如果您决定无论如何都要调用shell命令,对它的输出采取行动,那么学习如何访问标准的输入/输出流。看看这个例子。
更新
我想我现在看到了,您可能想编写一个程序。/geniatagger将接受命令行的输入,例如输出管道到它的“echo”,等等。
如果是这样的话,请查看使用标准输入流System.in。
https://stackoverflow.com/questions/22287622
复制相似问题