Java 如何判断命令行参数是否包含流重定向

Java 如何判断命令行参数是否包含流重定向,java,parsing,command-line,redirect,Java,Parsing,Command Line,Redirect,我正在编写一个程序,如果命令行包含流重定向(如或),则该程序将执行一个操作。重定向是shell语法的一部分,而不是传递给程序的内容。相反,请检查System.console()是否返回非空值。重定向机制的全部要点是程序不必在意。如果您需要做一些不同的事情,请添加一个命令行参数。重定向是shell提供的一种机制,因此我假设在将这些参数传递到main之前,这些参数已从参数中剥离出来。顺便说一句,请小心基于这样的内容更改程序的行为。当输出不是控制台时,可以省略颜色代码,但除此之外,要小心。人们会认为简

我正在编写一个程序,如果命令行包含流重定向(如
),则该程序将执行一个操作。重定向是shell语法的一部分,而不是传递给程序的内容。相反,请检查
System.console()
是否返回非空值。

重定向机制的全部要点是程序不必在意。如果您需要做一些不同的事情,请添加一个命令行参数。

重定向是shell提供的一种机制,因此我假设在将这些参数传递到
main
之前,这些参数已从参数中剥离出来。顺便说一句,请小心基于这样的内容更改程序的行为。当输出不是控制台时,可以省略颜色代码,但除此之外,要小心。人们会认为简单的重定向不会改变程序的行为。+1-这是正确的处理方法。其他想法是使用两个不同命令名的一个命令,或shell级别的命令别名。
public boolean hasRedirection(String[] args){
    boolean flag = false;
    int length = args.length;
    int i;
    for(i = 0; i < length; i++){
        System.out.println(args[i]);
        if(args[i].equals(">") || args[i].equals("<"))
            flag = true;
    }
    return flag;
}
project\src>java myProgram.Client localhost 1234 > myFile.txt
localhost
1234
project\src>java myProgram.Client localhost 1234 > myFile.txt
localhost
1234
>
myFile.txt