回显java程序的参数

时间:2015-02-15 07:18:47

标签: java linux bash

我有一个简单的java程序来计算传递给它的参数:

public class SubsetTest {
    public static void main(String[] args) {
        System.out.println(args.length);
    }
}

但是在bash shell中我尝试按如下方式运行程序:

% echo A B C D | java SubsetTest

始终打印0。我期待4。我做得不对劲?

3 个答案:

答案 0 :(得分:4)

您可以使用xargs来获得所需的行为

echo A B C D | xargs java SubsetTest

或者您可以尝试使用后退标记

java SubsetTest `echo A B C D`

答案 1 :(得分:0)

pipeecho的输出发送到另一个进程'标准输入。

  

管道是原始软件管道:一组进程   由他们的标准流链接,使每个进程的输出   (stdout)直接作为输入(stdin)提供给下一个

您可以使用

检索它
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext())
    System.out.println(scanner.next());

至于您要执行的操作,请参阅Redirecting stdout to program argumentAndreas' answer

答案 2 :(得分:0)

java SubsetTest <<< "A B C D"