【问题标题】:Java read file by command line, <(less than) symbolJava通过命令行读取文件,<(小于)符号
【发布时间】:2016-01-10 15:55:45
【问题描述】:
我正在尝试通过命令行读取文件名,
这是教授要我们输入的命令:
java MultiBinaryClient xxxxxx.edu 6001 < files.txt
我试图使用 args[3] 来获取文件名,但 args 仅包含 "xxxxxx.edu" 和 "6001"。为什么"<" 和"files.txt" 不在args[] 中?谁能帮帮我?
顺便说一句,我正在使用MAC终端测试我的代码,我相信我的教授使用win CMD,会有所不同吗?
谢谢!
【问题讨论】:
标签:
java
cmd
terminal
command-line-arguments
【解决方案1】:
让我们看看每个片段的含义。这就是我们执行包含main 方法的Java 类的方式:
java MultiBinaryClient
传递给程序的唯一命令行参数是这些:
xxxxxx.edu 6001
而且这个 sn-p 不是 Java 程序预期参数的一部分:
< files.txt
指定files.txt 的内容必须通过标准输入读入程序,这只是 Unix shell 语法。
【解决方案2】:
我知道这是一个老问题,但我最近遇到了这个问题。这是我为处理它所做的:
好吧,正如其他人所说,“
xargs -a FILE java JAVA_ARGS
或者,更具体地说:
xargs -a FILE java -cp CLASSPATH CLASS_WITH_MAIN_METHOD
【解决方案4】:
你应该转义'
java MultiBinaryClient xxxxxx.edu 6001 \< files.txt