我试图通过命令行读取文件名,
这是我们教授要我们输入的命令:
java MultiBinaryClient xxxxxx.edu 6001 < files.txt
我尝试使用args[3]
来获取文件名,但args只包含"xxxxxx.edu"
和"6001"
。为什么"<"
中没有"files.txt"
和args[]
?任何人都可以帮助我吗?
谢谢!
答案 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