java - 如何在没有回显连接的情况下编写这个特定命令?

标签 java terminal echo processbuilder moses

我正在使用这里教程中给出的命令 http://www.statmt.org/moses/?n=Moses.Baseline

echo 'T W O N E I G H T' | /home/saj/g2p/mosesdecoder-master/bin/moses -f /home/saj/g2p/working/binarised-model/moses.ini

它工作正常,但我需要在没有 echo 命令的情况下运行它。因为我想在JAVA(Eclipse)中运行这个命令并且存在连接问题。甚至

      Process p = r.exec("echo '/home/saj/' | ls");

也没有运行。虽然像 ls、pwd 这样的简单命令可以正常工作。

我尝试了这些方法,但没有一个起作用..

/home/saj/g2p/mosesdecoder-master/bin/moses -f/home/saj/g2p/working/binarized-model/moses.ini 'T W O N E I G H T'

/home/saj/g2p/mosesdecoder-master/bin/moses -f/home/saj/g2p/working/binarized-model/moses.ini 双胞胎

/home/saj/g2p/mosesdecoder-master/bin/moses 'T W O N E I G H T' -f/home/saj/g2p/working/binarized-model/moses.ini

/home/saj/g2p/mosesdecoder-master/bin/moses TWONE I G H T -f/home/saj/g2p/working/binarized-model/moses.ini

请建议正确的命令以在没有回显的情况下运行。

最佳答案

由于您的参数包含空格,因此您不能依赖内置标记化。为了避免这种情况,请使用 exec(String[])而不是exec(String) 。例如,对于此命令:

/home/saj/g2p/mosesdecoder-master/bin/moses -f \
    /home/saj/g2p/working/binarised-model/moses.ini 'T W O N E I G H T'

你会这样做:

String args[] = new String[] {
    "/home/saj/g2p/mosesdecoder-master/bin/moses",
    "-f",
    "/home/saj/g2p/working/binarised-model/moses.ini",
    "T W O N E I G H T" };
Process p = r.exec(args);

此外,关于管道和重定向,请注意这些是由 shell 处理的。为了运行命令行,例如 echo '/home/saj/' | ls在 Java 中,您应该执行一个 shell 并将其作为参数传递给 shell;例如:

String args[] = new String[] { "/bin/sh", "-c", "echo '/home/saj/' | ls" };
Process p = r.exec(args);

关于java - 如何在没有回显连接的情况下编写这个特定命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13796760/

相关文章:

java - 什么是 Swift 字典的 Android Java 等价物?

java - Drools 运行时异常(java.lang.ClassCastException : org. drools.io.impl.ClassPathResource 无法转换为 org.drools.io.InternalResource)

linux - 删除服务器上的 git fork

arrays - 在 Bash 中将文本文件的内容添加到数组中

c - 操作系统 : C scripts compile but I'm having a linker error

php - xdebug 跟踪/跟踪 php 回显,打印调用

java - 碧 Jade 报告 : filling a report throws an exception "Class not found when loading object from file"

java - getLastNonConfigurationInstance 总是返回 null

php - echo 仅对一个 id 起作用两次,但对另一个 id 不起作用

javascript - 在node.js中创建http echo服务器