Как задавать в Java собственные входные параметры

Компилирую проект в JAR, запускаю в командной строке как

java -jar GetInfoFile.jar

А как заставить принимать jar собственные внешние параметры/ключи? т.е. к примеру, приложение у меня ищет файлы в определенной папке, но папку я заранее не знаю. Я передаю имя папки ключем --folder "С:\Users\folder" и приложение выполняет мой код, в соответствии с переданным ему ключем. т.е. так:

java -jar GetInfoFile.jar --folder "С:\Users\folder"

Когда жестко прописываю путь, все работает, но хочется "универсальности".


Ответы (1 шт):

Автор решения: Alexey R.

Попробуйте так (пример просто проверяет наличие файла или каталога):

public class TestParameter {

    public static void main(String[] args) {
        if(args.length < 2){
            System.err.println("You should provide 2 arguments");
            System.exit(-1);
        }
        switch(args[0]){
            case "--folder": System.out.println(testFileOrFolder(args[1], true)); break;
            case "--file": System.out.println(testFileOrFolder(args[1], false)); break;
            default: System.err.println("Unknown argument: " + args[0]); System.exit(-1);
        }
    }

    private static boolean testFileOrFolder(String path, boolean isFolder){
        File target = new File(path);
        if(target.exists()){
            if(isFolder && !target.isDirectory()){
                return false;
            }
            return true;
        }
        return false;
    }

}
→ Ссылка