Java for Beginner
709 subscribers
616 photos
166 videos
12 files
964 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Основы работы с терминалом в Java


Зачем работать с терминалом?

Терминал (или командная строка в Windows) — это фундаментальный инструмент для разработчиков Java.

Хотя IDE, такие как IntelliJ IDEA, автоматизируют многие процессы, знание терминала важно по следующим причинам:
Полный контроль: Вы понимаете каждый шаг компиляции и запуска.
Обучение: Работа в терминале помогает разобраться, как
Java преобразует код в исполняемые программы.
Реальные проекты: На серверах, в CI/CD-системах (например, Jenkins) и скриптах терминал используется для автоматизации.
Отладка: Знание терминала помогает решать проблемы, когда IDE недоступна или возникают ошибки.

Для работы вам нужен установленный JDK (Java Development Kit). Если JDK ещё не установлен, обратитесь к моей предыдущей инструкции по установке Java 17, 21 или 24 LTS.


Основные команды: javac и java

Java-программы проходят два основных этапа:
Компиляция: Команда javac (Java Compiler) преобразует исходный код (файлы .java) в байт-код (файлы .class), который является платформонезависимым.
Запуск: Команда
java исполняет байт-код на виртуальной машине Java (JVM).


Предварительные проверки

Перед началом убедитесь, что JDK настроен:

Откройте терминал:
Windows: Win + Rcmd или PowerShell.
macOS/Linux: Откройте приложение «Терминал».


Проверьте версии:
java -version
javac -version


Ожидаемый вывод (для Java 17, например):
openjdk version "17.0.8" 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7)
javac 17.0.8


Если команды не работают, проверьте переменные JAVA_HOME и PATH:
Windows: Убедитесь, что JAVA_HOME указывает на папку JDK (например, C:\Program Files\Java\jdk-17), а %JAVA_HOME%\bin добавлен в PATH.
macOS/Linux: Проверьте, что JAVA_HOME установлена (например, export JAVA_HOME=/usr/lib/jvm/jdk-17) и добавлена в PATH в ~/.zshrc или ~/.bashrc.


Шаг 1: Подготовка рабочего пространства

Создайте папку для проекта:
mkdir java-projects
cd java-projects


Напишите простую программу:Создайте файл
HelloWorld.java в текстовом редакторе (например, Notepad++, VS Code или Блокнот):
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}


Убедитесь, что имя файла точно совпадает с именем класса (HelloWorld.java), включая регистр.
Сохраните файл в папке
java-projects.


Шаг 2: Компиляция с помощью javac

Команда javac компилирует исходный код в байт-код.

Перейдите в папку с файлом:
cd java-projects


Скомпилируйте программу:
javac HelloWorld.java


Если всё успешно, в папке появится файл HelloWorld.class — это байт-код.

Если возникла ошибка, проверьте:
Имя файла совпадает с именем класса.
Код не содержит синтаксических ошибок (например, пропущена ; или скобка).
JDK установлен (javac -version работает).



Полезные опции javac

-d <папка>: Указывает, куда сохранить .class файлы.

Например:
javac -d bin HelloWorld.java


Создает папку bin и помещает туда HelloWorld.class.

-cp <путь> или -classpath <путь>: Указывает путь к библиотекам или другим .class файлам, если программа использует зависимости.

Например:
javac -cp lib/my-lib.jar HelloWorld.java


-source <версия>: Указывает версию Java для компиляции (например, -source 17).
-target <версия>: Указывает версию байт-кода (обычно совпадает с -source).
-encoding <кодировка>: Указывает кодировку исходного файла (полезно для русских символов на Windows):


javac -encoding UTF-8 HelloWorld.java


-g: Добавляет отладочную информацию в .class файлы для упрощения отладки.
--release <версия>: Компилирует для конкретной версии Java, автоматически настраивая совместимость (например, --release 17).


Компиляция нескольких файлов

Если у вас несколько .java файлов, скомпилируйте их все:
javac *.java


Или укажите конкретные файлы:

javac Main.java Helper.java


#Java #для_новичков #beginner #Java_terminal
Шаг 3: Запуск с помощью java

Команда java запускает скомпилированный байт-код на JVM.

Запустите программу:
java HelloWorld


Ожидаемый вывод:
Hello, World!


Указывайте имя класса (HelloWorld), а не файла (HelloWorld.class

Если использовали -d


Если .class файлы находятся в другой папке (например, bin), укажите путь через -cp:
java -cp bin HelloWorld



Полезные опции java

-cp <путь> или -classpath <путь>: Указывает путь к .class файлам или библиотекам.

Например:
java -cp .:lib/my-lib.jar HelloWorld
(На Windows используйте ; вместо : для разделения путей.)


-Xmx<размер>: Устанавливает максимальный объем памяти для JVM (например, -Xmx512m для 512 МБ).
-Xms<размер>: Устанавливает начальный объем памяти (например, -Xms256m).
-D<свойство>=<значение>: Устанавливает системные свойства. Например:
java -Dfile.encoding=UTF-8 HelloWorld
--enable-preview: Включает экспериментальные возможности Java (например, для новых фич в Java 17+).
-jar <файл.jar>: Запускает приложение из JAR-файла (см. ниже).




Шаг 4: Дополнительные команды и процедуры

1. Создание и запуск JAR-файлов
JAR (
Java Archive) — это архив, содержащий .class файлы и ресурсы. Он удобен для распространения программ.

Создание JAR:

Скомпилируйте программу:
javac -d bin HelloWorld.java


Создайте JAR:
jar cf myapp.jar -C bin .


Это создаст myapp.jar, содержащий все файлы из папки bin.
Для запуска через main добавьте манифест:
jar cfm myapp.jar Manifest.txt -C bin .


Где Manifest.txt содержит:
Main-Class: HelloWorld

(Добавьте пустую строку в конце файла.)


Запуск JAR:
java -jar myapp.jar



2. Работа с пакетами
Если ваш код использует пакеты (например, package com.example;), структура папок должна соответствовать имени пакета.

Пример:
package com.example;

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


Сохраните файл в com/example/HelloWorld.java.

Компиляция:
javac com/example/HelloWorld.java


Запуск:
java -cp . com.example.HelloWorld

(Обратите внимание: используйте полное имя класса с точками, а не слэшами.)


3. Отладка с помощью jdb
JDK включает отладчик jdb для анализа программ.

Скомпилируйте с отладочной информацией:
javac -g HelloWorld.java


Запустите отладчик:
jdb HelloWorld


Основные команды jdb:
stop at HelloWorld:3 — установить точку останова на строке 3.
run — запустить программу.
next — выполнить следующую строку.
print variable — вывести значение переменной.



4. Генерация документации с javadoc

Команда javadoc создает HTML-документацию из комментариев в коде.

Пример кода с Javadoc-комментариями:
/
* Простая программа для вывода приветствия.
* @author Алексей
*/
public class HelloWorld {
/
* Главный метод программы.
* @param args аргументы командной строки
*/
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}


Создание документации:

javadoc -d docs HelloWorld.java

Это создаст папку docs с HTML-файлами документации.


5. Управление зависимостями
Для проектов с внешними библиотеками (например, JAR-файлами):
Укажите библиотеки при компиляции:
javac -cp lib/my-lib.jar MyProgram.java


Укажите их при запуске:
java -cp .:lib/my-lib.jar MyProgram

Для больших проектов используйте системы сборки, такие как Maven или Gradle, которые автоматизируют работу с зависимостями.


6. Работа с модулями (Java 9+)
С Java 9 введена модульная система (JPMS).

Если ваш проект использует модули, создайте файл module-info.java:
module my.module {
requires java.base;
}


Компилируйте с учетом модулей:
javac --module-path lib -d bin com/example/HelloWorld.java module-info.java


Запускайте:
java --module-path bin -m my.module/com.example.HelloWorld


#Java #для_новичков #beginner #Java_terminal
Шаг 5: Частые ошибки и их решения

Ошибка: javac: command not found:
JDK не установлен или PATH не настроен. Проверьте java -version и javac -version. Настройте JAVA_HOME и добавьте %JAVA_HOME%\bin (Windows) или $JAVA_HOME/bin (macOS/Linux) в PATH.

Ошибка: Error: Could not find or load main class:
Проверьте, что файл .class существует.
Убедитесь, что вы используете имя класса (
java HelloWorld), а не файла (java HelloWorld.class).
Если класс в пакете, укажите полное имя:
java com.example.HelloWorld.
Проверьте -cp:
java -cp bin HelloWorld.


Ошибка: Main method not found:

Убедитесь, что метод main имеет сигнатуру: public static void main(String[] args).

Кодировка (Windows):
Если русские символы отображаются некорректно, используйте:
javac -encoding UTF-8 MyProgram.java
java -Dfile.encoding=UTF-8 MyProgram


Ошибка: incompatible types или синтаксические ошибки:
Проверьте код на опечатки (например, пропущенные ; или неправильные типы).
Убедитесь, что версия
Java соответствует (например, используйте --release 17).


Полезные советы для новичков

Практикуйтесь: Напишите программы, такие как калькулятор или обработчик текстовых файлов, чтобы освоить javac и java.
Организуйте проект:
Храните исходники в src (например, src/com/example/).
Компилируйте в bin: javac -d bin src/com/example/*.
java.
Создавайте JAR для распространения.


Изучите документацию:
javac --help и java --help для списка опций.
Oracle
Java Docs: docs.oracle.com/en/java.

Переходите к IDE: После освоения терминала попробуйте IntelliJ IDEA, OpenIDE или GigaIDE для автоматизации.
Автоматизация: Для больших проектов изучите Maven или Gradle, чтобы упростить компиляцию и управление зависимостями.
Ресурсы: Stack Overflow, Oracle Tutorials, документация OpenJDK.


#Java #для_новичков #beginner #Java_terminal
👍1