JavaRush /Курсы /Модуль 1. Java Syntax /Запуск программы с консоли

Запуск программы с консоли

Модуль 1. Java Syntax
5 уровень , 3 лекция
Открыта

В предыдущей лекции мы скомпилировали небольшую программу, и получили на выходе файл MySolution.class, содержащий эту же программу в виде байт-кода. Исходный код был таким:


class MySolution {
   public static void main(String[] args) {
      System.out.println("Привет командная строка!");
   }
}

Теперь давай передадим JVM этот файл .class, чтобы она его выполнила. Для этого воспользуемся командой java и укажем имя класса содержащего метод main:


D:\temp>java MySolution

В консоль выведется надпись "Привет командная строка!".

Обрати внимание, что теперь нужно указывать не имя файла (MySolution.class), а имя класса (MySolution).

Давай попробуем запустить с консоли еще одну программу, на этот раз использующую массив args, параметр метода main:


public class MyArgs {
    public static void main(String[] args) {
        if (args.length == 3) {
            System.out.println(args[0].toLowerCase());
            System.out.println(args[1].toUpperCase());
            System.out.println(args[2].length());
        } else {
            System.out.println("Three parameters are expected.");
        }
    }
}

Скомпилируем:


D:\temp>javac MyArgs.java

И запустим:


D:\temp>java MyArgs

Получаем вывод: Three parameters are expected.

В последнюю команду после имени класса через пробел можно указать параметры, которые попадут в массив строк args. Например, если передать такие параметры:


D:\temp>java MyArgs One Two Three

То массив args будет содержать: ["One", "Two", "Three"]

А на экран будет выведено:

one
TWO
5

Если хочешь чтобы какой-то параметр содержал пробелы, его нужно взять в двойные кавычки:


D:\temp>java MyArgs "One Two" Three "Four Five Six"

Вывод:

one two
THREE
13

В том случае, если твоя программа состоит из одного файла, есть упрощенный способ ее запуска без явной компиляции. Просто укажи команде java имя твоего файла с расширением .java и параметры, если надо:


D:\temp>java MyArgs.java param1 param2

Такую возможность добавили начиная с 11-й версии Java, чтобы упростить жизнь тем, кто только начинает изучать язык программирования.

Для более детального ознакомления:
  1. Компиляция и исполнение Java приложений под капотом
  2. В команде java есть встроенная помощь. Для ее отображения выполни в командной строке:
    • java --help
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Max Уровень 78
11 октября 2024
А я вот тупить начал в 23:20 и разозлился на себя да и переписал последнюю строку вывода на System.out.println("args[2] length: " + args[2].length()); по мне так понятнее откуда цифра в терминал выводится :) Всем спокойной ночи ! ;) Идите спать хватит сидеть :)))
Станислав Уровень 83 Expert
14 апреля 2023
Предложу что пререквизитом для этой статьи должны быть основы работы в командной строке или терминале. Например, как сменить рабочую директорию. Добавлю, что после компиляции .class файла в terminal 2.13 мой я смог запустить программку только с помощью команды "java <ИмяФайла>.java"
Marina Rossa Уровень 88
22 февраля 2022
Ничего не понятно, но очень интересно