Где писать код на java
Итак, после установки JDK создадим первое приложение на языке Java. Что необходимо для создания программы на Java? Прежде всего нам надо написать код программы, и для этого нужен текстовый редактор. Можно использовать любой текстовый редактор, например, Notepad++.
И чтобы превратить код программы в исполняемое приложение необходим компилятор. После установки JDK все файлы по умолчанию помещаются в каталог C:\Program Files\Java\jdk-[номер_версии] (при использовании ОС Windows). В моем случае это каталог C:\Program Files\Java\jdk-19 . Если мы откроем в нем подкаталог bin , то мы сможем увидеть в нем ряд утилит. Нас прежде всего интересует утилита компилятора javac . Чтобы скомпилировать класс программы, нам надо передать ее код этому компилятору.
Также следует отметить другую утилиту из этой папки — java.exe, которая позволяет запускать скомпилированную программу.
Итак, создадим на жестком диске какой-нибудь каталог, в котором будут располагаться файлы с исходным кодом на языке Java. Допустим, это будет каталог C:/Java . Затем создадим в этом каталоге текстовый файл, который переименуем в Program.java . Откроем этот файл в любом текстовом редакторе и наберем в нем следующую программу:
public class Program < public static void main (String args[])< System.out.println("Hello Java!"); >>
Java является объектно-ориентированным языком, поэтому вся программа представляется в виде набора взаимодействующих классов. В данном случае определен один класс Program.
При определении класса вначале идет модификатор доступа public , который указывает, что данный класс будет доступен всем, то есть мы сможем его запустить из командной строки. Далее идет ключевое слово class , а затем название класса. То есть класс называется Program. После названия в фигурных скобках расположено содержимое класса.
Класс может содержать различные переменные и методы. В данном случае у нас объявлен один метод main . Это главный метод в любой программе на Java, он является входной точкой программы и с него начинается все управление. Он обязательно должен присутствовать в программе.
Метод main также имеет модификатор public . Слово static указывает, что метод main — статический, а слово void — что он не возвращает никакого значения. Позже мы подробнее разберем, что все это значит.
Далее в скобках у нас идут параметры метода — String args[] — это массив args, который хранит значения типа String , то есть строки. В данном случае ни нам пока не нужны, но в реальной программе это те строковые параметры, которые передаются при запуске программы из командной строки.
После списка параметров в фигурных скобках идет тело метода — это собственно те инструкции, которые и будет выполнять метод. В данном случае фактически определени определена только одна инструкция — вывод на консоль некоторой строки. Для вывода на консоль используется встроенный метод System.out.println() . В этот метод передается выводимая строка. Каждая инструкция завершается точкой с запятой.
Теперь скомпилируем написанную программу. Откроем командную строку (в Windows) или терминал в Linux/MacOS и введем там соответствующие команды. Первым делом перейдем в каталог, где лежит наш файл с программой с помощью команды:
cd C:\Java
В данном случае файл находится в каталоге C:\Java.

Затем cкомпилируем программу с помощью команды
C:\Java>"C:\Program Files\Java\jdk-19\bin\javac" Program.java
Обратите внимание, что весь путь к компилятору javac берется в кавычки, а затем через пробел идет название нашего файла, который содержит класс программы.
После этого программа компилируется в байт-код, и в каталоге C:\Java можно будет найти новый файл Program.class . Это и будет файл с байт-кодом программы. Теперь нам надо его запустить с помощью утилиты java:
C:\Java>"C:\Program Files\Java\jdk-19\bin\java" Program
Здесь уже расширение у файла не надо использовать.
Для ОС Windows весь процесс будет выглядеть следующим образом:

Добавление java в переменную Path
Для компиляции приходится вводить полный путь к комилятору javac, что может быть сопряжено с ошибками при вводе, да и каждый раз вводить полный путь тоже неудобно. Чтобы в дальнейшем облегчить работу, добавим путь к JDK в переменную PATH в переменных среды. Если мы работаем в Windows, то для добавления переменной среды через поиск найдем найдем параметр Изменение системных переменных среды . Для этого введем в поле поиска «Изменение системных переменных среды»:

Выберем пункт Изменение системных переменных среды . И сначала нам откроется окно «Свойства системы», где нажмем на кнопку Переменные среды :

Затем нам откроется окно, где мы можем увидеть все переменные среды. (Также можно перейти через Параметры и пункт Система ->Дополнительные параметры системы ->Переменные среды )
Здесь нам нужно исправить системную переменную Path . Для этого выделим ее и нажмем на кнопку «Изменить»:

В эту переменную Path нам надо добавить путь к инструментам JDK. И тут есть два момента. Во-первых, при установке jdk по умолчанию ряд утилит также устанавливаются в папку C:\Program Files\Common Files\Oracle\Java\javapath . В том числе это такие файлы как java.exe и javac.exe. И путь к этой папке по умолчанию добавляется в перемнную Path. То есть мы можем использовать этот путь.
Второй момент — в последних сборках Windows компания Microsoft также устанавливает свои сборки JDK, точнее OpenJDK, которые также по умолчанию добавляются в переменную Path и которые мы также можем использовать. Но у этих сборок есть большой минус — они применяют одну из прошлых версий JDK (обычно это LTS-сборки). Например, в моем случае это 11-я версия, но текущая версия может отличаться (например, на написание данной статьи текущей являлась версия 19).
Чтобы использовать последнюю версию среди путей в переменной Path убедимся, что путь C:\Program Files\Common Files\Oracle\Java\javapath располагается выше путей к сборкам JDK от Microsoft. Для перемещения определенного пути вверх среди переменных среды можно использовать кнопку «Вверх:

Также можно напрямую использовать путь к JDK.

Для создания новой переменной надо нажать на кнопку «Создать» и ввести в новое поле путь «C:\Program Files\Java\jdk-[номер_версии]\bin». Но опять же его следуется с помощью кнопки Вверх поместить над путями к OpenJDK от Microsoft.
После установки переменной Path перейдем к командной строке/терминалу (в более старых версиях Windows может потребоваться перезауск командной строки) и для проверки версии введем команду
java -version
Консоль нам должна в ответ ввести номер только что установленной версии JDK (в моем случае 19-й версии):
java version "19.0.1" 2022-10-18 Java(TM) SE Runtime Environment (build 19.0.1+10-21) Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
И после этого можно вводить только названия утилит без полных путей:
Среды разработки Java

Пришло время перейти от особенностей языка к программам, которые помогут писать код быстрее и правильнее. Среда разработки (IDE — Integrated Development Environment) включает в себя:
- редактор кода;
- компилятор;
- сборщик;
- отладчик.
Одни среды разработки содержат все это из коробки, другие доводятся до этого статуса с подключением плагинов и модулей. Вот 10 лучших IDE для java на сегодняшний день.
IntelliJ IDEA

Описание: Одна из самых функциональных сред для java разработки, оснащённая системой интеллектуальной помощи в написании кода. Исходя из контекста, IDEA настраивает работу автодополнения и доступность инструментов. Обилие инструментов позволяет ускорить разработку, например с помощью шаблонов и повторений, а также увеличить производительность конечной программы. Огромное количество плагинов и надстроек под любую задачу делают среду java разработки IDEA почти идеальным инструментом..
Стоимость: 499$ за первый год работы.
NetBeans
Описание: Позиционируется производителем, как среда разработки, поддерживающая все новейшие функции Java, позволяющая писать код без ошибок благодаря инструменту FindBug. Сайт, документация и сама IDE для java на русском языке. Пожалуй, самая мощная бесплатная среда java разработки.
Eclipse
Описание: У этой IDE самое больше сообщество разработчиков, отсюда же и самое внушительное количество плагинов. Обратная сторона — многие из них сомнительного качества и содержания. Полезна данная система ещё и как инструмент мультиязычной разработки — количество поддерживаемых языков благодаря энтузиастам превышает 20. Кроме того, это одна из лучших сред java разработки для android.
Codenvy
Описание: Главный акцент — удобство работы пользователя. В первую очередь это касается интуитивно понятного интерфейса, отсутствия перегруженности инструментами, возможности многопользовательского доступа к коду. Стандартные «фичи» вроде подсветки кода, рефакторинга, автозаполнения и поддержки Docker — в наличии.
Стоимость: Бесплатно для одного пользователя и ограниченного объёма. Для командной разработки — 10-20$ в месяц за память и членов команды.
Eclipse che
Описание: Совместный проект Eclipse и Codenvy, имеющий облачный фундамент. Поддерживает множество типов приложений и систем сборки для быстрой разработки. Огромное количеств плагинов и надстроек из сообщества прилагается.
BlueJ

Описание: Среда разработки для тех, кто только делает свои первые шаги в программировании, то есть школьников и студентов. Здесь простой интерфейс, минимум функций и почти нет пользовательских настроек, зато имеется версия среды java разработки на русском языке.
Greenfoot
Описание: Среда джава разработки для самых маленьких. В основе лежит обучение Java через графический интерфейс и игры, вроде того, как это реализовано в Scratch или Logo. Для серьёзной разработки Greenfoot не подходит категорически.
DrJava
Описание: Ещё одна простая и легковесная (всего 13 МБ) IDE для написания кода. Ориентирована на студентов, может быть установлена в качества плагина в Eclipse для дальнешего перехода на более функциональную платформу.
JDeveloper
Описание: Бесплатная среда ява разработки от Oracle. Позволяет максимально задействовать декларативный и визуальный подход к разработке. Имеет 2 исполнения: Java Edition и Studio Edition. Первая версия представляет общий функционал разработки, вторая — создание коммерческих приложений.
Android Studio

Описание: профильная среда java разработки на Android. В основе лежит IntelliJ IDEA, оптимизированная под решение конкретных мобильных задач: рефакторинга, сборки, шаблонизации, поиска причин низкой производительности и её увеличения. br —> Рекомендуем посмотреть мастер-класс по созданию клиент-серверного приложения на базе Android.
Данный список java IDE далеко не полон и охватывает лишь наиболее популярных представителей. Поэтому прежде, чем выбрать фаворита, помните, что лучшая среда java-разработки — та, что позволяет решить текущую задачу с минимальным количеством приложенных усилий и с наилучшим результатом.
Как начать программировать на Java
Чтобы начать программировать на Java, требуется установить JDK (java development kit — набор разработки для Java). Его скачивают с сайта компании Oracle. Например, JDK восьмой версии https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
JDK включает JRE и пакет разработчика, в который входит компилятор с языка Java, документация и др.
JRE (java runtime enviroment) – виртуальная машина для выполнения приложений, скомпилированных в соответствующий объектный код. Также включает библиотеки, но не компилятор и другие инструменты разработчика. Скачать JRE можно с сайта java.com. Грубо говоря, JRE – урезанная версия JDK. Поэтому разработчику, а не пользователю java-программ, этот пакет не нужен.
После распаковки пакета JDK в его подкаталоге bin вы найдете файл javac, запускающий компилятор, и файл java, запускающий виртуальную машину. Куда вы положите каталог с JDK, по большому счету не важно. Однако если это сделано не в предусмотренный для программ каталог (в случае Linux скорее всего это так), ОС не будет знать, что в ней появились новые программы. Тогда вам надо будет каждый раз указывать полный путь до компилятора и виртуальной машины.
Чтобы этого не делать, в Linux можно дописать путь в системную переменную $PATH. Сделать это можно несколькими способами. Например так, как описано ниже.
Допустим, мы распаковали JDK в каталог /usr/local/, и папка носит имя jdk1.8.0_191. В ней находится каталог bin с исполняемыми программами. Таким образом получаем путь /usr/local/jdk1.8.0_191/bin/. Открываем скрытый в домашнем каталоге файл .bashrc и дописываем туда:
PATH=/usr/local/jdk1.8.0_191/bin:$PATH export PATH
Здесь переменной PATH присваивается содержимое системной переменой $PATH и добавляется еще один наш каталог, точнее приписывается впереди. После этого выполняется экспорт. Теперь надо перезапустить «Терминал», чтобы файл .bashrc выполнился.
Можно ничего не качать и не менять $PATH, а установить из репозитория дистрибутива пакетным менеджером. Однако подобным образом обычно ставят не JDK от Oracle, а openJDK – полностью свободный аналог JDK. Установка в Ubuntu может выглядеть так:
sudo apt install openjdk-8-jdk
В любом случае Bash должен видеть как java, так и javac. Чтобы убедиться, наберите java и два раза нажмите Tab. В списке должны быть оба. Если в систему были установлены разные JDK, то узнать какой используется можно с помощью команды which:

Зачем нужна виртуальная машина Java
Можно задаться вопросом, если у нас есть компилятор javac, зачем нужна виртуальная машина java. Дело в том, что javac не переводит исходный код в машинный, а переводит его в байт-код.
Байт-код – это не машинный код. Поэтому он машинно-независим и может выполнять по большому счету на любых устройствах. Байт-код интерпретирует/компилирует на машинный язык виртуальная машина java в момент выполнения программы.
Хотя байт-код – не машинный код, но он достаточно низкоуровневый, чтобы исполняться быстрее, чем это происходило бы при чтении интерпретатором исходных кодов.
Таким образом, javac’ом мы компилируем до байт-кода. А java интерпретирует байт-код на машинный язык.
Первая программа
Чтобы проверить работоспособность установленного ПО, напишем программу HelloWorld на языке Java. Файлам с исходниками принято давать расширение .java. Программу можно набрать в любом текстовом редакторе. Например, в nano, vim, atom или geany.
Примечание. Если вы хотите освоить работу в Vim, наберите в терминале vimtutor. Откроется небольшой курс, обучающий работе в редакторе.
class HelloWorld public static void main(String[] args) System.out.println("Привет World!"); > >
Далее передаем этот файл javac’у. Он нам выдает файл HelloWorld.class, содержащий байт-код. Его мы передаем виртуальной машине java, не указывая расширение:

IntelliJ IDEA
Существует множество специализированных сред для разработки на Java. Они удобны для работы надо проектами, однако для обучения – не лучший выбор, так как создают структуру каталогов проекта, вспомогательные файлы, требуют настройки, включает множество дополнительных инструментов. Таким образом вы начинаете не столько с изучения языка, сколько с адаптации к среде программирования, зачастую не понимая смысла того, что делаете.
Плюсом здесь является то, что среда заставляет писать и форматировать код правильно, в ней есть автодополнение и подсказки.
Наиболее популярной IDE для Java является IntelliJ IDEA от компании JetBrains. Существует две версии – бесплатная Community и платная Ultimate (30 дней триальный период). В случае Linux в документации рекомендуют распаковывать скаченный архив в каталог /opt/. После этого из подкаталога bin запускают скрипт idea.sh, который запускает мастер установки.
В одном из окон мастера будет предложено выбрать SDK (в данном случае JDK). Следует указать каталог, куда вы распаковывали пакет JDK. IDEA будет использовать компилятор и другое отсюда.
Когда вы напишите первую программу, надо будет сконфигурировать запуск, указав главный класс, содержащий функцию main(), или нажимать Ctrl + Shift + F10.
X Скрыть Наверх
Программирование на Java. Курс
Первые шаги в Java: как начать разрабатывать ничего не устанавливая
По прошествию многих лет я подумал, а как бы я разрабатывал свою первую программу на Java, если бы я начал сегодня?

Знакомство с Java было в университете и при воспоминаниях об этом бросает в холодный пот. Кроме нового незнакомого языка, приходилось устанавливать какой-то JDK, потом IDE, потом создавать первый проект и вручную добавлять в него библиотеки. Делать по аналогии с готовыми программами и ловить неизведанные java.lang.ClassNotFoundException и java.lang.NoSuchMethodException и тому подобный ужас. Когда знал как работать только в операционной системе Windows и доступ в интернет был по модему через телефонную линию.
Надеюсь интересно будет как тем, кто делает первые шаги в java и тем, кто помнит jdk 1.4. Попробуем online IDE Eclipse Che.
Оговорюсь про главное условие — сейчас у вас должен быть стабильный доступ в интернет. И конечно же после прочтении статьи вы не получите работу Java архитектором в Нью-Йорке за 180 000 $ в год и даже не выучите Java за 21 день. Просто разработаем в современном окружении свой Hello world в несколько строчек кода, но с веб сервером.
Облачная IDE и разработка в Docker контейнере
Открытое программное обеспечение Eclipse Che — IDE нового поколения для коллективной разработки ПО. Не столь привычно нам «старичкам», но позволяет разрабатывать имея локально лишь современный браузер и стабильный доступ к сети. Сервер Che может быть запущен в локальной сети. Для быстрого старта нам даже не нужно ничего устанавливать.
Перейдите по ссылке Eclipse Che. Там возможно создать бесплатный аккаунт на codenvy.com. Можно зарегистрировать его на свою почту, либо воспользоваться OAuth провайдерами: Github, Google или Microsoft online.
На стороне сервера автоматически создается Docker контейнер с уже настроенным окружением для разработки. С помощью агента в контейнере к нему подключается IDE на javascript из вашего браузера.
При создании из шаблона «Java» в контейнере обычная сборка Ubuntu, а это значит что можно устанавливать необходимые вам для работы пакеты. Шаблон «Eclipse Che» основан на Alipine — минималистичной сборке linux под Docker и там такой свободы у вас нет.

Итак о чем я это. Если вы не знаете что это такое, пока можете даже не беспокоиться об этом. Все работает и так «из коробки», пусть на первом шаге это будет казаться магией! Со временем при желании разобраться во всем этом довольно просто.
Создадим новый «Workspace» из шаблона «Java». Прийдется посмотреть мультфильм со строительным краном, пока создается ваше пространство для разработки.
В вашем окружении разработки будут доступны Oracle JDK 8u45 и Maven 3.3.9. Точно также легко можно начать разработку на основе проекта с Github.
Готовим окружение для проекта.

Система управления зависимостями и сборки
Стандартом де-факто в мире Java является Maven и, наверное, самая лучшая поддержка в разных IDE. Gradle более молодой проект и он заслуживает право стать вашим выбором №1. Но при выходе на работу Java разработчиком вероятность встретить Maven гораздо выше, особенно на унаследованных проектах. К тому же он тоже пытается молодиться и уйти от XML формата за счет проекта Polyglot. Atom, Groovy, Clojure, Ruby, Scala, YAML — как основа для написания файла сборки. Тут история как и с языком программирования в JVM. Несмотря на существование Groovy, Scala, JRuby, Jython, Clojure всю их мощь и лаконичность, язык Java живее всех живых. И даже не сравнивайте Java с вождем — язык программирования живой и хоть медленно, но развивается.
Проект по-умолчанию console-java-simple предложит нам любимый Hello World.
Предлагаю чуть усложнить наш первый шаг и добавить Apache Camel в проект. Источники и приемники данных и вся сложность работы с технологиями скрываются за Url синтаксисом внутри его компонент и мы не будем погружаться глубоко.
Магия «верблюда»
Eclipse Che создал для нас нас шаблон проекта, который мы сейчас отредактируем и создадим наше веб приложение.
Apache Camel — это open source интеграционный фреймворк и нам он нужен лишь для простого Hello World. Добавим его библиотеки в pom.xml зависимость на ядро «верблюда» и компонент jetty веб сервера.
org.apache.camel camel-core 2.18.0 org.apache.camel camel-jetty 2.18.0
Для того, чтобы компилировались лямбды добавим в этот же файл:
1.8 1.8
После этого отредактируем файл /console-java-simple/src/main/java/org/eclipse/che/examples/HelloWorld.java заодно прочувствуем как работает эта online IDE.
package org.eclipse.che.examples; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.main.Main; public class HelloWorld < public static void main(String[] argvs) throws Exception < Main main = new Main(); main.addRouteBuilder(new RouteBuilder() < @Override public void configure() throws Exception < from("jetty:http://0.0.0.0:8080") .process(exchange ->); > >); main.run(argvs); > >
Для того чтобы можно было запустить пример командой mvn clean install exec:java нужно добавить в pom.xml exec-maven-plugin
org.codehaus.mojo exec-maven-plugin 1.5.0 java org.eclipse.che.examples.HelloWorld
Запустим проект командой из терминала
mvn clean install exec:java
Или отредактируем конфигурацию запуска «по щелчку» в IDE.
Подключиться к нашему веб приложению из внешнего мира можно по адресу из столбца «Server Address» для строки «tomcat8». Как это сделать можете посмотреть в видео дальше:

Результат работы нашей программы:

В этом примере создается Apache Camel и его маршрут обработки данных. Маршрут начинается с веб сервера jetty, который слушает http запросы на порту 8080. При получении запроса мы создаем ответ с помощью строчки process(exchange ->
Скринкаст процесса написания java кода (без звука и мата) в Che и запуска программы Hello World:
Что дальше?
Достаточно доступа в интернет и браузера в 2016 году чтобы учиться разрабатывать на Java. Не надо решать 1000 и 1 проблему с установкой и настройкой IDE и окружения, чтобы начать учиться программировать.
А еще не верьте курсам что вас научат программировать на Java за 21 день и тому подобному маркетингу. Чтобы познать дзен разработки на Java нужны годы. Учиться, учиться и еще раз учиться!
- Программирование
- Java
- Системы сборки
