我正在编写一个 Java 程序来清理一些数据。
我正在向它传递我需要的文件,但第一个文件被忽略!
重现问题的最少代码:
public class Classifier {
public static void main(String[] args) throws IOException {
System.out.println(args[0]);
for (String s : args) {
System.out.println(s);
}
}
}
我使用以下命令行参数运行它:
java Classifier < March.csv February.csv
我收到的输出是:
February.csv February.csv
谁能解释一下这是为什么吗?
最佳答案
< March.csv
被 shell 解释为输入重定向。 March.csv
的内容被发送到程序的标准输入,您将忽略它。这发生在 shell 中,甚至在 Java 程序启动之前。所以,只有February.csv
正在作为命令行参数发送到 main
.
删除 <
,以便您打算发送到 main
的所有命令行参数已发送。
关于java - 命令行参数丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663120/