这就是我所看到的:
echo "A B C D E F G H I" | java Subset 3
我真的不明白|
或echo
在这里的含义。在阅读了一些堆栈溢出线程之后,我知道由于命令行参数不会转到System.in,echo有助于将它放在那里吗? (我对此真的有一个非常模糊的想法),|
命令将“每个参数”“逐个”提供给程序?
这很有吸引力,但是当我尝试在eclipse调试器中测试它们时,这就是我得到的:
我期待一些特别的东西,但所有部分都只是像任何正常的论点一样去args []。这有点令人困惑。
答案 0 :(得分:5)
如果您传递字符串
echo "A B C D E F G H I" | java Subset 3
作为Eclipse中的命令行参数,您将获得所看到的行为。但是,如果在命令行中输入此内容, shell 将首先处理该命令。 shell将其解释为
stdout
Subset 3
echo
传递到Java进程'stdin 然后JVM获取参数(Subset 3
)并将第一个字符串Subset
解释为要运行的类名,并将3
解释为Java程序的参数。