这就是我在看的:
echo "A B C D E F G H I" | java Subset 3
我真的不明白这里有什么|或echo意味着什么.在阅读了一些堆栈溢出线程之后,我知道由于命令行参数不会转到System.in,echo有助于将它放在那里吗?(我对此真的有一个非常模糊的想法),并且|命令将"每个参数""逐个"提供给程序?
这很有吸引力,但是当我尝试在eclipse调试器中测试它们时,这就是我得到的:

我期待一些特别的东西,但所有部分都只是像任何正常的论点那样去args [].这有点令人困惑.
如果你传递字符串
echo "A B C D E F G H I" | java Subset 3
Run Code Online (Sandbox Code Playgroud)
作为Eclipse中的命令行参数,您将获得所看到的行为.但是,如果在命令行中输入此命令,则shell首先处理该命令.shell将此解释为
stdoutSubset 3echoJava进程管道传输到stdin然后JVM获取arguments(Subset 3)并将第一个字符串解释Subset为要运行的类名,并将其解释为3Java程序的参数.