Ваша первая программа на Java выглядит так:
package ru.allineed.samples.helloworld;
public class MySampleApplication {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Давайте вкратце разберём, что к чему. Любая программа на Java должна иметь "точку входа", т.е. то место, откуда начинается исполнение программы. В Java подобной точкой входа является специальный метод с именем main(). Как видно выше, к нему применены такие ключевые слова Java, как public, static и void.
Давайте разберём каждое из них:
- public - говорит о том, что наш метод main(), объявленный в классе MySampleApplication является публичным, т.е. он может быть вызван извне нашего класса. В нашем случае вызывать метод будет среда времени исполнения Java, а именно Java Runtime Environment (сокращённо JRE).
- static - это ключевое слово указывает на то, что метод является статическим и может быть вызван без явного создания экземпляра нашего класса MySampleApplication. На практике это значит, что в нашей программе не требуется писать конструкцию с созданием экземпляра нашего приложения вида MySampleApplication myApp = new MySampleApplication().
- void - ключевое слово говорит о том, что наш метод main() не возвращает никакого значения, т.е. результат выполнения метода main() не будет использоваться в других частях приложения. Для тех читателей, кто знаком с языками C или C++, здесь можно провести параллель: в них метод main() (да, в этих языках программирования точка входа в программу также называется main, поэтому имя точки входа в исполняемое приложение у Java в этом плане схоже) может возвращать целочисленное значение (тип int) - для того, чтобы, к примеру, использовать его в скриптах, вызывающих программу на C или C++. Создатели Java решили оставить вещи простыми и понятными, поэтому аргумент, почему метод main() ничего не вызывает примерно такой: когда метод main() заканчивает свою работу, программа на Java также завершает свою работу. Ничего нельзя сделать с возвращаемым объектом со стороны виртуальной машины Java, т.е. JVM (Java Virtual Machine), поэтому разработчики языка Java упростили этот момент касательно метода main(), и он не возвращает никакого значения.
Идём далее, наш метод main() принимает конструкцию вида String[] args. Это не что иное, как список аргументов, передаваемых нашей программе при её запуске.
Например, если мы будем запускать нашу программу с помощью такой команды:
java ru.allineed.samples.helloworld.MySampleApplication one two three
то в списке аргументов мы получим три переданных строковых значения "one", "two", "three"
Наконец, конструкция System.out.println("Hello, World!") позволяет вывести на консоль приветственное сообщение с текстом "Hello, World!". Для первой программы совсем неплохо, мы уже умеем выводить что-то на консоль и запускать наше Java-приложение.
Теперь остановимся ещё на паре моментов:
1. Наша программа должна быть сохранена в обязательном порядке в файле с тем же именем, что и имя самого класса, т.е. MySampleApplication.java. Это требование компилятора Java - чтобы публичный класс сохранялся в файле с одноимённым названием. Поэтому не следует помещать приведённый выше код в файл с каким-то другим именем вроде MyProgram.java, такую программу компилятор просто не сможет скомпилировать и выдаст ошибку.
2. Обратите внимание на самую первую строку - package ru.allineed.samples.helloworld; Это объявление пакета, в котором располагается наш класс MySampleApplication. Каждый класс должен принадлежать какому-то пакету, образуя иерархию классов вашей исполняемой Java-программы. Это второе важное требование, которое нужно запомнить. В Java есть ещё так называемый пакет по умолчанию (default), который позволяет не указывать пакет в вашем классе явно, но это уже детали, на них сейчас не будем заострять внимание, т.к. в основном все хорошо спроектированные классы находятся в каком-то конкретном пакете.
Теперь чуть подробнее про то, как же запустить нашу программу:
1. Нам понадобится компилятор Java - утилита javac, которая позволит скомпилировать исходный код нашей программы на Java в байт-код. Для того, чтобы его заполучить, прежде всего нужно установить на вашей машине инструментарий для разработки Java, а именно Java Development Kit (сокращённо, JDK). Чтобы это сделать, скачайте дистрибутив, подходящий под архитектуру и ОС вашего компьютера на официальном сайте Oracle, после чего установите JDK на ваш компьютер. Здесь и далее (если не оговорено иное) автор будет приводить примеры программ, протестированных и проверенных на версии JDK не ниже 8й. Скачивать ли более старшие версии JDK - это Ваш выбор.
2. После того, как Вы сможете скачать и установить JDK, есть несколько опций - можно вручную скомпилировать подготовленный файл MySampleApplication.java с помощью команды javac MySampleApplication.java, либо воспользоваться популярными интегрированными средами разработки (Integrated Development Environment, сокращённо IDE), такими как:
- JetBrains IntelliJ IDEA - скачать с официального сайта https://www.jetbrains.com/ru-ru/idea/download/#section=windows, можно выбрать одну из опций поставки - Ultimate (платная лицензия с множеством полезных опций для опытных и профессиональных разработчиков) или Community версия, бесплатная и вполне подходящая под цели первого знакомства с Java. На первых порах, пока только начинаете осваивать Java, я бы рекомендовал Community-версию, при желании Вы потом сможете сделать апгрейд и приобрести Ultimate
- Eclipse - скачать с официального сайта - https://www.eclipse.org/downloads/. Бесплатная OpenSource IDE, хорошо подходящая под задачи разработки на Java.
- NetBeans - ещё одна достойная IDE для разработки Java-приложений. Можно найти и скачать на сайте https://netbeans.apache.org/download/index.html
По моей (субъективной) оценке, на основании опыта работы со всеми вышеперечисленными средами разработки, я бы порекомендовал IntelliJ IDEA как самую удобную в части пользовательского опыта IDE. Ряд задач по разработке может быть удобнее решать через Eclipse/NetBeans, но это, вероятнее всего, будут специфичные задачи, и в определённый момент вы сами поймете, что нужно использовать именно их. В конечном итоге, какую из вышеперечисленных сред использовать, решать вам, но все они достойны внимания и подойдут практически для всех задач по разработке приложений на Java.
3. Запускать уже скомпилированную в байт-код программу (файл с расширением .class) можно при помощи команды java (передавать ей параметры "one two three" совсем не обязательно, если программа не ожидает никаких конкретных аргументов):
java ru.allineed.samples.helloworld.MySampleApplication
Внизу этой статьи есть ссылка на наш Git-репозиторий, содержащий все примеры на Java из статей нашего сайта.
Также ссылку на класс с кодом примера и подробную инструкцию по запуску примеров на вашем компьютере вы найдете в блоке ниже. Инструкция по запуску всех примеров с сайта приводится для среды разработки IntelliJ IDEA.
Примеры из этой статьи: https://github.com/AllineedRu/JavaExamples/blob/main/allineed-core/src/main/java/ru/allineed/samples/helloworld/MySampleApplication.java