Начало работы с Java


Начало работы с Java
Начало работы с Java

Элементы Java-приложения


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

Даже если вы знакомы с каким-либо другим языком программирования, разбираетесь в компиляции, знаете, что такое исполняемый файл, вас может заинтересовать следующее, поскольку Java работает иначе, чем C или C++.

Скачать курсы бесплатно

Компиляция и выполнение Java-кода


Для создания Java-приложения необходимо выполнить несколько шагов. В этом руководстве показано, как создать очень простое приложение Java. Если вам нужно создать корпоративное приложение, процесс создания более сложный, но по его сути вы найдете эти простые шаги.

Первый из этих шагов — написать код Java в текстовом редакторе.

Затем этот код необходимо преобразовать в другой формат, который сможет выполнить ваш компьютер. Это преобразование выполняется специальной программой, называемой компилятором . В некоторых языках нет компилятора; Ява делает. Каждый компилятор специфичен для языка.

Файл, создаваемый компилятором, часто называют двоичным файлом или исполняемым файлом. Хотя вы можете прочитать исходный код и понять его, двоичные или исполняемые файлы не предназначены для чтения человеком. Только ваш компьютер может это понять.

Этот код содержит специальные двоичные коды, называемые байт-кодом . Это технический термин, с которым вы можете столкнуться. Точное описание того, что представляет собой этот байт-код, выходит за рамки данного руководства.

Компиляция некоторого кода может завершиться неудачно; ваш код должен быть правильным, чтобы компилятор мог создать его исполняемую версию. Не волнуйтесь, на этой странице вы найдете код, который вы собираетесь скомпилировать. Все, что вам нужно сделать, это скопировать его и вставить в текстовый редактор.

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

Эти два шага: компиляция и выполнение требуют двух конкретных программ, входящих в состав Java Development Kit, также известного как JDK. Далее в этом руководстве вы увидите, как бесплатно скачать JDK и как его установить.

Обратите внимание, что начиная с Java SE 11 вы также можете объединить эти два шага в один, выполнив файл .java напрямую. Вы можете использовать эту функцию, только если выполняете программу, написанную в одном файле. Этот способ выполнения вашего Java-приложения не работает, если ваш Java-код охватывает более одного файла.

Создание первого класса Java


Первый шаг, который вам нужно знать, это то, что код Java, который вы пишете, сохраняется в простых текстовых файлах. В этом уроке ваше приложение будет написано в одном текстовом файле. Большим приложениям могут потребоваться тысячи таких файлов.

Java — объектно-ориентированный язык. Если этот технический термин для вас ничего не значит, не волнуйтесь, все, что вам нужно помнить на этом этапе, это то, что весь код, который вы пишете, должен храниться в классе Java.

Класс Java создается путем специального объявления в текстовом файле. Просто скопируйте следующий код и вставьте его в текстовый редактор. Поздравляем! Вы создали свой первый класс Java!

public class MyFirstClass {
}
Имя этого класса Java — MyFirstClass. Вам необходимо сохранить этот текст в файле с именем MyFirstClass.java. Класс Java необходимо сохранить в файле с тем же именем, что и ваш класс, с расширением .java. Это обязательно и на самом деле очень удобно, поскольку не нужно открывать файл, чтобы узнать, какой класс в нем написан.

Вы можете дать этому классу любое имя, если оно не начинается с цифры. Однако существует соглашение: имя класса Java начинается с заглавной буквы. Это не является обязательным, но все разработчики Java следуют этому соглашению. Когда вы станете опытным Java-разработчиком, вам будет странно видеть класс, не соответствующий этому соглашению.

Если вы в точности следуете этому примеру, вам следует сохранить класс MyFirstClass в текстовом файле с именем MyFirstClass.java.

Просто предупреждение: для создания и сохранения этого файла вам следует использовать простой текстовый редактор. Использовать текстовый процессор не получится.

Подготовка сборника вашего первого занятия


Компиляция — это второй шаг, который необходимо выполнить после создания первого класса. Он заключается в преобразовании кода Java, который вы написали в MyFirstClass.java файле, в другой формат, который можно выполнить. Результат этого преобразования будет сохранен в другом файле, созданном компилятором. Имя этого файла будет MyFirstClass.class.

Пока что единственный инструмент, который вы использовали, — это текстовый редактор. Для компиляции этого класса требуется компилятор; то, чего у вас может не быть на вашем компьютере. К счастью, вы можете скачать этот компилятор и использовать его бесплатно. Позвольте мне провести вас через этот процесс.

На данный момент загрузка «Java» означает загрузку Java Development Kit, также известного как JDK. JDK содержит множество инструментов, и среди них есть те, которые вы будете использовать для компиляции и запуска приложения Java. Он официально распространяется проектом OpenJDK и Oracle.

Возможно, вы слышали о некоторых других элементах, также называемых «Java».

JRE означает среду выполнения Java. Это подмножество JDK, которое больше не распространяется OpenJDK или Oracle. Он содержал только инструменты, необходимые для запуска приложения Java. Вы не можете скомпилировать свой код с помощью инструментов, предусмотренных в JRE.

Возможно, вы также слышали о J2EE, Java EE или Jakarta EE. Все эти аббревиатуры относятся к версии Java Enterprise Edition. Это набор инструментов и библиотек для создания приложений корпоративного уровня. Java EE отличается от JDK и выходит за рамки данного руководства. Вам не нужна Java EE для компиляции и запуска простого приложения, которое мы создаем в этом руководстве.

Настройка комплекта разработки Java


Вы можете скачать JDK из разных мест. Существует единая страница, на которой всегда указана последняя версия JDK: https://jdk.java.net/ . Выбрав последнюю «Готовую к использованию» версию JDK, вы перейдете на страницу, где сможете загрузить нужную вам версию JDK.

С этой страницы вы можете скачать пять версий:

  • Linux/AArch64
  • Linux/x64
  • macOS/x64
  • macOS/AArch64
  • Windows/x64
На этой странице представлены готовые к использованию сборки Java Development Kit с открытым исходным кодом, реализация платформы Java SE под лицензией GNU General Public License, версия 2, с исключением Classpath.

Настройка JDK для Windows/x64


Давайте загрузим версию для Windows. Вы получаете ZIP-файл размером около 200 МБ, который можно открыть с помощью любой утилиты ZIP. Этот ZIP-файл содержит JDK. Вы можете разархивировать содержимое этого файла в любое место на своем компьютере.

Как только это будет сделано, вам нужно создать переменную среды, JAVA_HOME которая будет указывать на каталог, в который вы распаковали JDK. Сначала вам нужно открыть приглашение DOS. Если вы разархивировали ZIP-файл JDK 20 в каталоге, D:\jdk\ то в этом приглашении DOS вам нужно будет ввести следующую команду:

  1. > set JAVA_HOME=D:\jdk\jdk-20
    
Обратите внимание, что в этом и во всех других примерах начало > указывает на то, что вам нужно ввести эту команду или вставить ее в командную строку. Не следует вводить или вставлять этот символ, поскольку он не является частью команды set.

Вы можете проверить JAVA_HOME правильность установки переменной, введя следующий код:
> echo %JAVA_HOME%
Эта команда должна напечатать следующее:
  1. D:\jdk\jdk-20
    

Затем вам необходимо обновить PATH переменную среды, чтобы добавить bin в нее каталог вашего каталога JDK. Это можно сделать с помощью следующей команды:

> set PATH=%JAVA_HOME%\bin;%PATH%
Вам нужно быть очень осторожным при настройке этих двух переменных, потому что одна ошибка, например, добавление пробела или отсутствующей точки с запятой, приведет к сбою.

Не закрывайте эту командную строку. Если вы закроете его и откроете снова, вам нужно будет снова создать эти две переменные.

Настройка JDK для Linux/x64


Давайте загрузим версию для Linux. Вы получаете архивный файл с .tar.gz расширением, которое вам нужно расширить.

Чтобы развернуть его, нужно скопировать его или переместить в нужный каталог. Затем вы можете ввести следующую команду:

$ tar xzf *.tar.gz
Обратите внимание, что в этом и во всех других примерах начало $ указывает на то, что вам нужно ввести эту команду или вставить ее в командную строку. Не следует вводить или вставлять этот символ, поскольку он не является частью команды tar.

Эта команда разворачивает все файлы с расширением .tar.gz, которые есть у вас в текущем каталоге. Вы можете использовать точное имя этого файла, если вам просто нужно его развернуть.

Выполнение этой команды может занять несколько секунд или больше, в зависимости от вашей системы. Он создает новый каталог в текущем каталоге с содержимым JDK.

Как только это будет сделано, вам нужно создать переменную среды, JAVA_HOME которая будет указывать на каталог, в котором вы развернули JDK. Если вы развернули архивный файл JDK 20 в каталоге, /home/javauser/jd kто в этом приглашении оболочки вам нужно будет ввести следующую команду:

$ export JAVA_HOME=/home/javauser/jdk/jdk-20
Точный каталог зависит от развернутого вами дистрибутивного файла.

Вы можете проверить JAVA_HOME правильность установки переменной, введя следующий код:

$ echo $JAVA_HOME
Эта команда должна напечатать следующее:

/home/javauser/jdk/jdk-20
Затем вам нужно обновить PATH переменную, добавив binв нее каталог вашего каталога JDK. Это можно сделать с помощью следующей команды:

$ export PATH=$JAVA_HOME/bin:$PATH
Вам нужно быть очень осторожным при настройке этих двух переменных, потому что одна ошибка, например, добавление пробела или отсутствующей точки с запятой, приведет к сбою.

Не закрывайте эту командную строку. Если вы закроете его и откроете снова, вам нужно будет снова создать эти две переменные.

Проверить, все ли в порядке, можно, введя следующую команду:

$ which java
Ваша оболочка должна вывести полный путь к javaисполняемому файлу в binкаталоге дистрибутива, который вы только что расширили. В этом примере будет напечатано:

/home/javauser/jdk/jdk-20/bin/java

Настройка JDK для macOS


Давайте загрузим версию macOS. Вы получаете архивный файл с .tar.gz расширением, которое вам нужно расширить.

Чтобы развернуть его, нужно скопировать его или переместить в нужный каталог. Затем вы можете ввести следующую команду:

$ tar xzf *.tar.gz
Обратите внимание, что в этом примере, как и во всех других, начало $ указывает на то, что вам нужно ввести эту команду или вставить ее в командную строку. Не следует вводить или вставлять этот символ, поскольку он не является частью команды tar.

Эта команда разворачивает все файлы с расширением .tar.gz, которые есть у вас в текущем каталоге. Вы можете использовать точное имя этого файла, если вам просто нужно его развернуть.

Выполнение этой команды может занять несколько секунд или больше, в зависимости от вашей системы. Он создает новый каталог в текущем каталоге с содержимым JDK. Этот каталог имеет расширение .jdk.

Как только это будет сделано, вам нужно создать переменную среды, JAVA_HOME которая будет указывать на каталог, в котором вы развернули JDK. Если вы развернули архивный файл JDK 20 в каталоге, /Users/javauser/jdk то в этом приглашении оболочки вам нужно будет ввести следующую команду:

$ export JAVA_HOME=/Users/javauser/jdk/jdk-20.jdk/Contents/Home
Точный каталог зависит от развернутого вами дистрибутивного файла.

Вы можете проверить JAVA_HOME правильность установки переменной, введя следующий код:

$ echo $JAVA_HOME
Эта команда должна напечатать следующее:

/Users/javauser/jdk/jdk-20.jdk/Contents/Home
Затем вам необходимо обновить PATH переменную, добавив bin в нее каталог вашего каталога JDK. Это можно сделать с помощью следующей команды:

$ export PATH=$JAVA_HOME/bin:$PATH
Вам нужно быть очень осторожным при настройке этих двух переменных, потому что одна ошибка, например, добавление пробела или отсутствующей точки с запятой, приведет к сбою.

Не закрывайте эту командную строку. Если вы закроете его и откроете снова, вам нужно будет снова создать эти две переменные.

Проверить, все ли в порядке, можно, введя следующую команду:

$ which java
Ваша оболочка должна вывести полный путь к java исполняемому файлу в bin каталоге дистрибутива, который вы только что расширили. В этом примере будет напечатано:

/Users/javauser/jdk/jdk-20.jdk/Contents/Home/bin/java
 

Собираем свой первый класс


После того, как вы правильно настроили свой JDK; переменная JAVA_HOME и PATH переменная, вы готовы скомпилировать свой первый класс.

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

Компиляция и запуск вашей первой Java-программы

Независимо от того, следовали ли вы по пути Windows, Linux или macOS, остальное остается одинаковым.

  1. Перейдите в каталог, в котором вы сохранили свой первый урок MyFirstClass.java. Вы можете убедиться, что находитесь в правильном каталоге, набрав dir. Он покажет вам файлы, которые есть в этом каталоге. Вы должны увидеть свой MyFirstClass.javaфайл.
  2. Убедитесь, что ваш компилятор доступен из этого каталога, введя следующую команду. Эта команда одинакова независимо от того, используете ли вы Windows или Linux.
> java -version
Он должен сообщить вам, какую версию javacвы используете в данный момент. Если выдается сообщение об ошибке, вам необходимо проверить переменные JAVA_HOME и, PATH поскольку, скорее всего, с ними что-то не так.

Теперь все готово для компиляции вашего первого кода. Вы можете ввести следующее.
> javac MyFirstClass.java
На этом этапе могут произойти две вещи. У вас могут появиться сообщения об ошибках, говорящие о том, что компилятор не может скомпилировать ваш код из-за ошибок в вашем Java-коде. Вам нужно будет исправить их, прежде чем вы сможете двигаться дальше.

Если компилятор молчит и ни на что не жалуется: поздравляю! Это означает, что ваш Java-код был правильно скомпилирован. Повторная проверка содержимого каталога должна показать в нем новый файл: MyFirstClass.class

 

Добавление кода в ваш класс для его запуска


Пока что ваш класс пуст; в нем нет исполняемого кода. Если вам удалось его правильно скомпилировать, вы можете перейти к следующему шагу и выполнить некоторый код.

Просто откройте MyFirstClass.java файл и скопируйте в него следующий код.
public class MyFirstClass {

    public static void main(String... args) {
        System.out.println("Hello, World!");
    }
}
Как вы, возможно, знаете, в информатике существует давняя традиция: писать программу, выводящую «Hello, World!» на консоли вашего приложения. Так давайте сделаем это!

В этом классе есть технический код, который может быть вам не очень понятен. Не волнуйтесь; все, что вам нужно сделать, это скомпилировать его, выполнив шаги, описанные в предыдущем разделе.

Убедитесь, что компилятор создал файл MyFirstClass.class за вас. Чтобы запустить его, все, что вам нужно, это ввести следующую команду:

> java MyFirstClass
Это должно напечатать Привет, мир! на консоли. Если это так: поздравляем! Вы смогли запустить свою первую Java-программу!

 

Запуск программы Hello World как однофайлового приложения


Начиная с Java SE 11, вы можете запускать приложение Java без этапа компиляции, если программа написана в одном файле. Именно так обстоит дело с простым Hello, World! приложение.

Вы можете просто ввести следующее:

> java MyFirstClass.java
И он напечатает Hello, World! сообщение на консоли.


Распространенные проблемы и их решения

Проблемы с компилятором
Распространенные сообщения об ошибках в системах Microsoft Windows
javac is not recognized as an internal or external command, operable program or batch file
Если вы получаете эту ошибку, Windows не может найти компилятор javac.

Вот один из способов сообщить Windows, где найти файлы javac. Предположим, вы установили JDK в C:\jdk20. В командной строке введите следующую команду и нажмите Enter:

C:\jdk20\bin\javac HelloWorldApp.java
Если вы выберете этот вариант, вам придется ставить перед командами javac и каждый раз при компиляции или запуске программы. Чтобы избежать лишнего ввода, обратитесь к разделу «Обновление переменной» в инструкциях по установке JDK 20 .javaC:\jdk20\bin\PATH

Class names, HelloWorldApp, are only accepted if annotation processing is explicitly requested
Если вы получили эту ошибку, вы забыли включить суффикс .java при компиляции программы. Помните, что команда javac HelloWorldApp.java не javac HelloWorldApp.


Распространенные сообщения об ошибках в системах UNIX


javac: Command not found
Если вы получаете эту ошибку, UNIX не может найти компилятор javac.

Вот один из способов сообщить UNIX, где найти javac. Предположим, вы установили JDK в /usr/local/jdk20. В командной строке введите следующую команду и нажмите Return:

/usr/local/jdk20/javac HelloWorldApp.java
Примечание. Если вы выберете этот вариант, каждый раз, когда вы компилируете или запускаете программу, вам придется предварять команды javac. Чтобы избежать лишнего ввода, вы можете добавить эту информацию в свою переменную. Действия для этого будут различаться в зависимости от того, какую оболочку вы сейчас используете .java/usr/local/jdk20/PATH

Class names, 'HelloWorldApp', are only accepted if annotation processing is explicitly requested
Если вы получили эту ошибку, вы забыли включить суффикс .java при компиляции программы. Помните, что команда javac HelloWorldApp.java не javac HelloWorldApp.

Синтаксические ошибки (все платформы)


Если вы неправильно напечатаете часть программы, компилятор может выдать синтаксическую ошибку. В сообщении обычно отображается тип ошибки, номер строки, в которой была обнаружена ошибка, код в этой строке и положение ошибки в коде. Вот ошибка, вызванная пропуском точки с запятой ( ;) в конце инструкции:

Testing.java:8: error: ';' expected
count++
^
1 error
Если вы видите какие-либо ошибки компилятора, значит, ваша программа не скомпилировалась успешно и компилятор не создал файл .class. Внимательно проверьте программу, исправьте обнаруженные ошибки и повторите попытку.

Семантические ошибки
Помимо проверки синтаксической корректности вашей программы, компилятор проверяет другие основные корректности. Например, компилятор предупреждает вас каждый раз, когда вы используете неинициализированную переменную:

Testing.java:8: error: variable count might not have been initialized
count++;
^
Testing.java:9: error: variable count might not have been initialized
System.out.println("Input has " + count + " chars.");
^
2 errors
Опять же, ваша программа не скомпилировалась успешно, и компилятор не создал .class файл. Исправьте ошибку и повторите попытку.

Проблемы во время выполнения

Сообщения об ошибках в системах Microsoft Windows


Если вы получили эту ошибку, java невозможно найти файл байт-кода HelloWorldApp.class.

Одним из мест, java где пытается найти ваш .class файл, является ваш текущий каталог. Поэтому, если ваш .class файл находится в формате C:\java, вам следует изменить на него текущий каталог. Чтобы изменить каталог, введите в командной строке следующую команду и нажмите Enter:

cd c:\java
Приглашение должно измениться на C:\java>. Если вы войдете dir в командную строку, вы должны увидеть свои файлы .java и .class. Теперь войдите java HelloWorldApp снова.

Если у вас все еще есть проблемы, возможно, вам придется изменить CLASSPATH переменную. Чтобы узнать, необходимо ли это, попробуйте удалить путь к классам с помощью следующей команды.

set CLASSPATH=
Теперь войдите java HelloWorldApp снова. Если программа теперь работает, вам придется изменить CLASSPATH переменную. Чтобы установить эту переменную, обратитесь к разделу «Обновление переменной PATH» в инструкциях по установке JDK. Переменная CLASSPATH задается таким же образом.

Could not find or load main class HelloWorldApp.class
Распространенная ошибка начинающих программистов — попытка запустить java лаунчер на .class файле, созданном компилятором. Например, вы получите эту ошибку, если попытаетесь запустить программу с использованием java HelloWorldApp.class вместо java HelloWorldApp. Помните, что аргументом является имя класса, который вы хотите использовать, а не имя файла.

Exception in thread "main" java.lang.NoSuchMethodError: main
Виртуальная машина Java требует, чтобы класс, который вы с ее помощью выполняете, имел main метод, с которого можно начать выполнение вашего приложения. При более внимательном рассмотрении раздела «Добавление кода в класс для его запуска» подробно обсуждается основной метод.

Сообщения об ошибках в системах UNIX


Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp
Если вы получили эту ошибку, java невозможно найти файл байт-кода HelloWorldApp.class.

Одним из мест, где Java пытается найти ваш файл байт-кода, является ваш текущий каталог. Так, например, если ваш файл байт-кода находится в формате /home/jdoe/java, вам следует изменить на него текущий каталог. Чтобы изменить каталог, введите в командной строке следующую команду и нажмите Return:

cd /home/jdoe/java
Если вы войдете pwd в командную строку, вы должны увидеть /home/jdoe/java. Если вы войдете lsв командную строку, вы должны увидеть свои файлы .javaи . .classТеперь войдите java HelloWorldApp снова.

Если у вас все еще есть проблемы, возможно, вам придется изменить CLASSPATH переменную среды. Чтобы узнать, необходимо ли это, попробуйте удалить путь к классам с помощью следующей команды.

unset CLASSPATH
Теперь войдите java HelloWorldApp снова. Если программа теперь работает, вам придется изменить CLASSPATH переменную таким же образом, как и PATH переменную выше.

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp/class
Распространенной ошибкой начинающих программистов является попытка запустить программу запуска Java для файла, .class созданного компилятором. Например, вы получите эту ошибку, если попытаетесь запустить программу с использованием java HelloWorldApp.class вместо java HelloWorldApp. Помните, что аргументом является имя класса, который вы хотите использовать, а не имя файла.

Exception in thread "main" java.lang.NoSuchMethodError: main
Виртуальная машина Java требует, чтобы класс, который вы с ее помощью выполняете, имел основной метод, с которого можно начать выполнение вашего приложения. При более внимательном рассмотрении раздела «Добавление кода в класс для его запуска» подробно обсуждается основной метод.

 

Идём дальше


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

  1. Создайте источник в наборе .java текстовых файлов.
  2. Скомпилируйте эти файлы, чтобы создать набор соответствующих .class двоичных файлов.
  3. Запустите их вместе как приложение.
Разработчики, работающие над большими приложениями, не используют текстовые редакторы для управления своим исходным кодом; они используют интегрированную среду разработки. IDE — это сложные программные приложения, специализирующиеся на разработке программного обеспечения. Эти приложения автоматически выполняют компиляцию вашего исходного кода, они могут помочь вам, среди прочего, отслеживать ошибки в синтаксисе вашего Java-кода и выявлять ошибки в его выполнении.

Некоторые из этих инструментов имеют открытый исходный код и могут использоваться бесплатно.

Последнее обновление: 23 мая 2023 г.




Отправить комментарий

Новые Старые
FL.ru – фриланс сайт удаленной работы. Поиск удаленной работы, фрилансеры.