<<Предыдущий урок   Список уроков   Следующий урок>>

Компиляция и выполнение java программы

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

После создания простого приложения, которое выводит что-то на экран, вы должны компилировать ваш код и запустить его.

Независимо от того, какую операционную систему вы используете, Linux, Mac или Windows, если на вашем компьютере установлен JDK (Java Development Kit), вы можете в консоли набрать следующие команды чтобы скомпилировать и запустить программу:

  • javac (или  javac.exe)
  • java (или  java.exe)

В первом случае будет вызван компилятор javac.exe, а во втором случае — запускалка java.exe, которая стартует нашу программу. Эти файлы лежат в папке bin  вашего JDK.

Рассмотрим на примере. Вспомним код из первого урока — создадим файл с названием Main.java.

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Идем в папку, куда среда  разработки сохранила проект. Я работаю в IntelliJIDEA, и мой проект лежит в C:\Users\имя пользователя\IdeaProjects\название проекта\src. Находим там наш файл Main.java. Консоль вызывается так: щелкаем правой клавишей мыши с зажатой клавишей Shift на пустом месте в папке, где лежит файл нашей программы, и выбираем пункт контекстного меню «Открыть окно команд».
Для того, чтобы скомпилировать его нужно набрать в консоли команду javac и в качестве параметра передать имя нашего файла:

javac Main.java

Эта команда вызовет компилятор, который создаст файл Main.class, содержащий скомпилированный код нашей java программы.

Чтобы запустить ее, нужно ввести команду java с именем класса (не файла!) в качестве параметра:

java Main.class //так неправильно
java Main //так правильно

Аргументы

В главном классе нашей программы есть метод public static void main(...), который в качестве аргумента принимает массив String[] args.

Массив строк в качестве аргумента можно передать в программу при запуске из командной строки .

Любой массив в Java имеет переменную длину, это число элементов в этом массиве.

Добавим такой код в класс Main.java:

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}

И чтобы скомпилировать и запустить программу с аргументами, пишем в консоль:

javac Main.java
java Main arg0 arg1 arg2

Упражнение

Создайте программу, которая выводит аргументы, переданные при запуске, в одну строку.

Дополнительное чтение:

Сборка и выполнение Java программ

Исключения (Exception) и их обработка в Java


<<Предыдущий урок   Список уроков   Следующий урок>>


admin

Обучающие видео-уроки по разработке приложений для операционной системы Android. Мы поможем любому новичку стать продвинутым разработчиком андроид-приложений!

18 комментариев

Vsdim · 13.03.2016 в 23:08

Странно у меня все установлено, но проблема возникает:
при запуске в командной строке >javac Main.java
ответ системы:
«javac» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

    admin · 14.03.2016 в 09:05

    Попробуйте перегрузиться

    Papashkin · 16.11.2017 в 16:45

    Вам нужно попасть на доп. настройки системы:
    ПКМ по «Мой Компьютер» — «Свойства», дальше «Дополнительные параметры системы» (в 7-ке это — нижняя кнопка в левой панели экрана)).

    Вкладка «Дополнительно» — «Переменные среды…» (внизу вкладки).

    В списке переменных добавляете переменную PATH и указываете путь к папке bin внутри папки jdk.
    Например, вот так: C:\Program Files\Java\jdk1.8.0_151\bin

    Перезапускаете консоль — всё работает.

Алексей Н. · 22.03.2016 в 16:04

подскажите как скомпилировать в android studio?

Виталий Непочатов · 02.06.2016 в 12:09

Для того, чтобы работать из консоли ну нужно изменить переменную окружения path. В этой переменной хранятся пути записанные через точку с запятой, в которых оболочка(консоль) будет искать исполняемые файлы(*exe, *.bat, и другие). Допишите в эту переменную ;C:Program FilesJavajdk1.6.0_17bin.

Serge · 13.06.2016 в 20:01

Решение проблемы с «javac/java не является внутренней или внешней командой, исполняемой программой или пакетным файлом»:

«Панель управления» > «Система и безопасность» > «Система»

Далее в левой части окна «Дополнительные параметры системы» > вкладка «Дополнительно», внизу окна «Переменные среды».

В части «Системные переменные» ищем переменную «Path», выделяем её и кликаем по «Изменить…».

В открывшемся окне «Создать» и указываем путь к директории bin из JDK (по умолчанию: C:\Program Files\Java\jdk1.8.0_92\bin)

После кликаем по всем кнопками «OK». После этой операции командная строка будет понимать где находятся исполняемые файлы JDK.

Serge · 13.06.2016 в 20:23

//Main.java

import java.util.Arrays;

public class Main {

public static void main(String[] args) {
System.out.println(Arrays.toString(args));

}
}

Таня · 15.07.2016 в 09:44

Добрый день.
У меня проблема такая:
пользуюсь Андроид Студио, создала класс с выводом строки. В командной строке скомпилировала программу (javac Main.java), после чего файл класса появился. Теперь пробую запустить программу, но выходит ошибка «Error: Could not find or load main class Main». После поиска решения проблемы нашла пример создания программы в блокноте. Создала по примеру — программа запускается, а моя, созданная в Андроид студии — нет. Потом открыла свой java файл в блокноте, удалила строку с описанием пакета «package com.example.name.f123;» — только тогда запустилось.
Получается, что созданные в студии классы не запустить из командной строки? Может, надо сделать какие-нибудь настройки в самой студии, чтобы не править постоянно файлы класса?

    admin · 15.07.2016 в 16:58

    Скачайте IntelliJIdea для java

Владимир Гусев · 18.03.2017 в 18:05

Выдает в командной строке вместо аргументов:
«[Ljava.lang.String;@15db9742»
В чем может быть проблема?

    Владимир Гусев · 19.03.2017 в 21:29

    все решил, забыл одну фигурную скобку)) странно, что без нее эклипс скомпилировать дал

Урок 9. Основы языка JAVA. Наследование в java | fanDROID.info · 09.11.2015 в 10:49

[…] <<Урок 8. Компиляция и выполнение java программы с кома… […]

Уроки по основам языка программирования JAVA для начинающих | FanDROID.info · 12.03.2016 в 19:19

[…] Основы JAVA. Компиляция и выполнение java программы с кома… […]

#7. Вводный курс по JAVA. Объекты | FanDROID.info · 12.03.2016 в 19:37

[…] <<Предыдущий урок   Список уроков   Следующий урок>> […]

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.