Java通过命令行读取文件,<(小于)符号

时间:2015-10-13 03:16:10

标签: java cmd terminal command-line-arguments

我试图通过命令行读取文件名,

这是我们教授要我们输入的命令:

java MultiBinaryClient xxxxxx.edu 6001 < files.txt

我尝试使用args[3]来获取文件名,但args只包含"xxxxxx.edu""6001"。为什么"<"中没有"files.txt"args[]?任何人都可以帮助我吗?

顺便说一句,我正在使用MAC终端来测试我的代码,我相信我的教授使用win CMD,它会产生差异吗?

谢谢!

4 个答案:

答案 0 :(得分:5)

让我们看看每个片段的含义。这就是我们执行包含main方法的Java类的方法:

java MultiBinaryClient

传递给程序的唯一命令行参数是:

xxxxxx.edu 6001

此代码片段是Java程序的预期参数的一部分:

< files.txt

它只是Unix shell语法,指定必须通过标准输入将files.txt的内容读入程序。

答案 1 :(得分:1)

我知道这是一个老问题,但是最近我遇到了这个问题。这是我要处理的事情:

好吧,正如其他人所说,“ <”将文件内容重定向到stdin。如果要将文件内容用作程序参数,则可以使用xargs:

xargs -a FILE java JAVA_ARGS

或更具体地说:

xargs -a FILE java -cp CLASSPATH CLASS_WITH_MAIN_METHOD

答案 2 :(得分:0)

&LT;是一个重定向。该文件将通过stdin流式传输。

答案 3 :(得分:-1)

你应该逃避'&lt;'

java MultiBinaryClient xxxxxx.edu 6001 \< files.txt