Главная » Java » Аргументы командной строки

0

Программа ByteReader хранит  имя файла  abc.gif прямо в своем коде, или, как говорят программисты, имя файла жёстко зашито (на сленге захардкодировано)  в  программу.  Это  означает,  что  для  получения похожей  программы,  которая  бы считывала  файл  xyz.gif,  нужно  было бы  изменить код и перекомпилировать его, что не очень удобно. Было бы  намного  лучше  передавать  имя  файла  в  командной  строке,  при запуске программы.Любую  Java–программу  можно  запустить  с  аргументами  командной строки,  например:java ByteReader xyz.gif

Здесь методу main()  передается  всего один аргумент  — xyz.gif. Еслипомните, у метода main() есть аргумент: public static void main(String[] args) {…}

Да,  это массив элементов типа String, который JVM передает вглавный  метод. Если запустить программу без аргументов, этот массив

останется  пустым.  Иначе, массив будет иметь столько элементов, сколько  аргументов командной строки было передано программе.Давайте посмотрим, как  эти аргументы  командной строки можно использовать  в  очень  простом  классе,  который  просто  выведет  их  на экран:public class TestArguments {

public static void main(String[] args) {

// Сколько получено аргументов?

int numberOfArgs = args.length;

for (int i=0; i<numberOfArgs; i++){

System.out.println("I’ve got " + args[i]);

}

}

}

На следующем скриншоте показано, что произойдет, если запустить программу с двумя аргументами —  xyz.gif и 250. JVM поместит значение xyz.gif в элемент args[0], а второй аргумент попадет в args[1].

Аргументы командной  строки  всегда  передаются  в  программу  как строки  (String). Программа самостоятельно должна конвертировать данные в подходящий формат, например:int myScore = Integer.parseInt(args[1]); Советую  проверять, правильное ли число  аргументов  передано в командной  строке.  Делайте  это прямо в  начале  метода  main(). Если количество  аргументов не соответствует ожидаемому,  то программа должна   выдать   короткое   сообщение   об  этом   и   незамедлительно закончить работу, используя специальный метод System.exit():public static void main(String[] args) {

if (args.length != 2){

System.out.println(

"Пожалуйста, передайте параметры, например:"); System.out.println("java TestArguments xyz.gif 250");

// Выход из программы

System.exit(0);

}

}

В  конце  этой  главы вам  предстоит  написать  программу  для копирования  файлов.  Для  того,  чтобы  программа  работала  с  любыми файлами,  имена  исходного  и  конечного  файлов  должны будут передаваться в программу через аргументы командной строки.В Eclipse,  для  целей  тестирования,  тоже  можно  указывать  аргументы командной   строки для всех запускаемых программ. В окне   Run Configurations,   выберите закладку с надписью (x)=Arguments и введите необходимые аргументы в поле Program Arguments.

Поле   VM  arguments  позволяет   указать   аргументы  для   JVM. Это позволит,  например,  запросить  больше  памяти  для  выполнения программы,   настроить саму JVM, и т.д. В разделе Материалы  для дополнительного   чтения есть ссылка на сайт с более подробным описанием

Источник: Java  Programming for Kids, Parents and Grandparents by Yakov Fain

По теме:

  • Комментарии