java
November 22, 2020

Компилируем Java код "руками"

Приветствую Вас, уважаемые читатели. Наверняка многие из вас уже скачали IntelliJ IDEA и даже успели поиграться с Java кодом и запустили свой первый проект, нечто вроде:

Рис. 1. Код из Idea

Идея на самом деле умная и умеет делать самостоятельно многие вещи. Например компилировать ваш код в *.class и запускать уже откомпилированный байт-код специальной программой, с ондноименным названием - Java по нажатию выделенного зеленого треугольничка.

Давайте разберемся с терминами:

  1. Что такое Java код?
  2. Что такое байт-код?

Java код - это программный код, который должен соответствовать синтаксису языка программиования Java. Если код соответствует синтаксису, то есть не имеет синтаксических ошибок, он может быть скомпилирован программой javac - компилятор java кода. Программа javac преобразует ваш java код (кстати java код представляет собой файлик с текстом в расширении *.java) в байт-код - файлик с расширением *.class.

Байт-код - это откомпилированный java код, код который уже может интерпретироваться виртуальной машиной Java (JVM).

В данной статье я хотел бы показать как можно компилировать java код руками.

Для эксперимента вам необходимо создать файлик Main.java с следующим содержанием:

public class Main {    
    public static void main(String[] args) {        
         System.out.println("Hello world");    
    }
}
Рис. 2. В директории лежит файлик в расширении .java с кодом из рис. 1.

Далее компилируем файл в консоли (программа cmd), вызываем программу javac в качестве аргумента передаем программе имя файла, в соответствии с примером. ВАЖНО! Для работы программы из консоли необходимо настроить перемнные среды. Результатом работы данной программы будет новый файл с тем же именем, но расширением .class. Это как раз тот самый байт-код.

Рис. 3. Компиляция кода программой javac

Для того, чтобы запустить байт-код и получить результат работающей программы достаточно передать файл Main в качестве аргумента программе java:

Рис. 4. Результат работы программы