You can actually run Java program as you would shell or python scripts without manually compile the Java file, as described in
JEP 330. That is available since JDK 11.
If you create a file testing
, and put the following you should be able to run it as command testing
. You need to make it executable in Linux and Mac OSX with chmod +x testing
.
#!/usr/bin/env java --source 11
public class Test {
public static void main(String [] args) {
System.out.println("Hello world!");
System.exit(0);
}
}
You are not allowed to use the file extension .java
in the previous example.
$ chmod +x testing
$ ./testing
Hello world!
$
But you can still execute if it is was name Test.java
without the shebang «#!» prefix like this:
public class Test {
public static void main(String [] args) {
System.out.println("Hello again!");
System.exit(0);
}
}
Then execute the file Test.java
with following command:
$ java Test.java
Hello again!
$
So this works as long as you have a new enough Java compiler in the path, check with java -version
. More information in this blog.
Загрузить PDF
Загрузить PDF
Хотя многие среды программирования позволяют компилировать и запускать программы, их также можно скомпилировать и запустить с помощью командной строки. У Windows и Mac есть свои собственные версии командной строки, на Mac OS она называется Терминал. Процесс компиляции и запуска для Windows и для Mac практически идентичен.
-
1
Сохраните программу. Создав программу на Java с помощью текстового редактора, такого как NotePad, сохраните ее с расширением .java. Название файла, конечно же, может быть любым. В этом руководстве в качестве названия файла мы будем использовать «filename» (имя файла).
- Чтобы сохранить файл как .java, после имени файла напишите .java и выберите Все файлы в выпадающим меню выбора расширений.
- Запомните, куда вы сохранили файл.
- Если вы не знаете, как написать программу на Java, поищите дополнительное руководство об этом. Однако, чтобы научиться компилировать и запускать программы, можно использовать любую программу, написанную на Java.
-
2
Откройте Командную строку/Терминал. Доступ к командной строке немного отличается для Mac и Windows.
- Windows: нажмите Пуск, затем введите cmd. Чтобы открыть Командную строку, нажмите ↵ Enter.
- Mac: в Finder нажмите на вкладку Переход, выберите Программы, затем – Утилиты и кликните по Терминал.
-
3
-
4
Перейдите в нужную папку. Чтобы изменить рабочий каталог, используйте команду cd, а затем введите название каталога.
- Например, если вы сейчас находитесь в каталоге
C:UsersBobProject
и хотите его изменить наC:UsersBobProjectTitanProject
, введитеcd TitanProject
и нажмите ↵ Enter. - Если вы введете
dir
и нажмете ↵ Enter, то сможете увидеть список файлов, которые находятся в этом каталоге.
- Например, если вы сейчас находитесь в каталоге
-
5
Скомпилируйте программу. Как только вы окажетесь в нужном каталоге, можете скомпилировать программу – введите в командную строку
javac filename.java
и нажмите enter.- Если в вашей программе есть какие-либо ошибки или возникли трудности с компиляцией, командная строка вас об этом предупредит.
- Для получения дополнительной справки ознакомьтесь с нашей статьей о том, как исправить ошибки компилятора в Java.
-
6
Запустите программу. Введите
java filename
и нажмите ↵ Enter. Конечно же, замените «filename» именем вашего файла.- После нажатия ↵ Enter ваша программа должна запуститься. Если вы получили сообщение об ошибке или ваша программа не работает, используйте метод устранения ошибок.
Реклама
-
1
Установите путь. Если вы используете простую программу, файлы которой расположены в одном каталоге, вероятно, вам не нужно этого делать. Однако, если вы используете более сложную программу с файлами в нескольких каталогах, вам нужно будет указать компьютеру, где искать эти файлы.
-
Windows: в командной строке введите
java -version
и нажмите ↵ Enter. Основываясь на версии Java, указанной в первой строке, введите в командной строкеset path=%path%;C:Program FilesJavajdk1.5.0_09bin
и нажмите ↵ Enter. Замените jdk1.5.0_09 версией Java, которая у вас установлена.- Вводите эту команду, когда будете находиться в каталоге с вашей программой Java.
-
Mac: чтобы убедиться, что у вас установлен Java, введите в терминале команду
/usr/libexec/java_home -v 1.7
и нажмите ↵ Enter. Затем введитеecho export "JAVA_HOME=$(/usr/libexec/java_home)" >> ~/.bash_profile
и нажмите ↵ Enter. После этого перезапустите терминал.
-
Windows: в командной строке введите
Советы
- Опять же, важно, чтобы вы загрузили и установили Java JDK на свой компьютер. Ссылка для загрузки: http://www.oracle.com/technetwork/java/javase/downloads/index.html.
Реклама
Об этой статье
Эту страницу просматривали 63 465 раз.
Была ли эта статья полезной?
You can actually run Java program as you would shell or python scripts without manually compile the Java file, as described in
JEP 330. That is available since JDK 11.
If you create a file testing
, and put the following you should be able to run it as command testing
. You need to make it executable in Linux and Mac OSX with chmod +x testing
.
#!/usr/bin/env java --source 11
public class Test {
public static void main(String [] args) {
System.out.println("Hello world!");
System.exit(0);
}
}
You are not allowed to use the file extension .java
in the previous example.
$ chmod +x testing
$ ./testing
Hello world!
$
But you can still execute if it is was name Test.java
without the shebang «#!» prefix like this:
public class Test {
public static void main(String [] args) {
System.out.println("Hello again!");
System.exit(0);
}
}
Then execute the file Test.java
with following command:
$ java Test.java
Hello again!
$
So this works as long as you have a new enough Java compiler in the path, check with java -version
. More information in this blog.
You can actually run Java program as you would shell or python scripts without manually compile the Java file, as described in
JEP 330. That is available since JDK 11.
If you create a file testing
, and put the following you should be able to run it as command testing
. You need to make it executable in Linux and Mac OSX with chmod +x testing
.
#!/usr/bin/env java --source 11
public class Test {
public static void main(String [] args) {
System.out.println("Hello world!");
System.exit(0);
}
}
You are not allowed to use the file extension .java
in the previous example.
$ chmod +x testing
$ ./testing
Hello world!
$
But you can still execute if it is was name Test.java
without the shebang «#!» prefix like this:
public class Test {
public static void main(String [] args) {
System.out.println("Hello again!");
System.exit(0);
}
}
Then execute the file Test.java
with following command:
$ java Test.java
Hello again!
$
So this works as long as you have a new enough Java compiler in the path, check with java -version
. More information in this blog.
- Компиляция программ
- Компиляция с помощью -d.
- Запуск программы с помощью команды java.
- Ключевые моменты.
Для компиляции программ из командной строки (консоли) используется команда javac.
Синтаксис javac:
javac [ключи] [исходники]
Чтобы получить список возможных ключей, выполните:
javac –help
Чтобы скомпилировать программу MyFirstApp
, запустите компилятор, указав имя исходного файла в командной строке следующим образом:
javac MyFirstApp.java
Компилятор javac создаст файл MyFirstApp.class
, содержащий версию байт-кода.
В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class
.
По умолчанию компилятор записывает сгенерированный .class
в тот же каталог, где находится исходный класс .java
. Это хорошо для маленьких проектов, но при работе на больших проектах файлы .java
и .class
должны храниться отдельно.
Ключ -d позволяет указать компилятору, куда записывать сгенерированные .class
файлы.
Например, у нас есть такая структура папок:
Следующая команда, выполненная из project1 папки сгенерирует файл MyFirstApp.class
и запишет его в папку classes (предполагаем, что MyFirstApp
не содержит оператора package
):
cd project1
javac -d classes src/MyFirstApp.java
Теперь давайте рассмотрим пример компиляции класса com.company.lesson1.MyFirstApp
, находящегося в пакете com.company.lesson1
. Имеется такая структура каталогов:
Следующая команда, выполненная из src каталога, сгенерирует файл MyFirstApp.class
, и запишет его в каталог classes/com/company/lesson1:
cd myProject/src
javac -d ../classes com/company/lesson1/MyFirstApp.java
Если каталог classes/com/company/lesson1 не существует, то он будет создан при компиляции.
Если же не существует каталог classes, то вы получите ошибку компиляции.
Чтобы выполнить программу из командной строки, следует воспользоваться загрузчиком приложений Jаvа, который называется java.
Синтаксис java:
java [ключи] класс [аргументы]
Для получения списка возможных ключей, выполните:
java –help
Чтобы выполнить программу, передадим имя класса MyFirstApp
(предполагаем, что MyFirstApp
не содержит оператора package
) в качестве аргумента командной строки:
java MyFirstApp
Если класс MyFirstApp
находится в пакете, то выполняем команду:
java com.company.lesson1.MyFirstApp
Стоит заметить, что при запуске программы указывается только один класс без расширения .class
.
- В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение
.class
. - По умолчанию компилятор записывает сгенерированный
.class
в тот же каталог, где находится исходный класс.java
. - Ключ
-d
указывает компилятору, куда записывать сгенерированные.class
файлы. - При компиляции могут быть созданы отсутствующие каталоги соответствующие пакету компилируемого класса.
- Если в ключе
-d
указан не существующий каталог, будет выброшена ошибка компиляции. - При запуске программы указывается только один класс без расширения
.class
. -d
может содержать относительные и абсолютные пути.
Презентацию с видео можно скачать на Patreon.
Последнее обновление: 22.11.2022
Итак, после установки JDK создадим первое приложение на языке Java. Что необходимо для создания программы на Java? Прежде всего нам надо написать код программы, и для этого нужен текстовый редактор.
Можно использовать любой текстовый редактор, например, Notepad++.
И чтобы превратить код программы в исполняемое приложение необходим компилятор. После установки JDK все файлы по умолчанию помещаются в каталог C:Program FilesJavajdk-[номер_версии] (при использовании ОС Windows).
В моем случае это каталог C:Program FilesJavajdk-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 и введем там соответствующие команды. Первым делом перейдем в каталог, где лежит наш файл с программой с помощью команды:
В данном случае файл находится в каталоге C:Java.
Затем cкомпилируем программу с помощью команды
C:Java>"C:Program FilesJavajdk-19binjavac" Program.java
Обратите внимание, что весь путь к компилятору javac берется в кавычки, а затем через пробел идет название нашего файла, который содержит
класс программы.
После этого программа компилируется в байт-код, и в каталоге C:Java можно будет найти новый файл Program.class.
Это и будет файл с байт-кодом программы. Теперь нам надо его запустить с помощью утилиты java:
C:Java>"C:Program FilesJavajdk-19binjava" Program
Здесь уже расширение у файла не надо использовать.
Для ОС Windows весь процесс будет выглядеть следующим образом:
Добавление java в переменную Path
Для компиляции приходится вводить полный путь к комилятору javac, что может быть сопряжено с ошибками при вводе, да и каждый раз вводить полный путь тоже неудобно.
Чтобы в дальнейшем облегчить работу, добавим путь к JDK в переменную PATH в переменных среды. Если мы работаем в Windows, то для добавления переменной среды
через поиск найдем найдем параметр Изменение системных переменных среды. Для этого введем в поле поиска «Изменение системных переменных среды»:
Выберем пункт Изменение системных переменных среды. И сначала нам откроется окно «Свойства системы», где нажмем на кнопку
Переменные среды:
Затем нам откроется окно, где мы можем увидеть все переменные среды.
(Также можно перейти через Параметры и пункт Система ->Дополнительные параметры системы ->Переменные среды)
Здесь нам нужно исправить системную переменную Path. Для этого выделим ее и нажмем на кнопку «Изменить»:
В эту переменную Path нам надо добавить путь к инструментам JDK. И тут есть два момента.
Во-первых, при установке jdk по умолчанию ряд утилит также устанавливаются в папку C:Program FilesCommon FilesOracleJavajavapath. В том числе это такие файлы как
java.exe и javac.exe. И путь к этой папке по умолчанию добавляется в перемнную Path. То есть мы можем использовать этот путь.
Второй момент — в последних сборках Windows компания Microsoft также устанавливает свои сборки JDK, точнее OpenJDK, которые также по умолчанию добавляются в переменную Path
и которые мы также можем использовать. Но у этих сборок есть большой минус — они применяют одну из прошлых версий JDK (обычно это LTS-сборки). Например, в моем случае это 11-я версия,
хотя текущей является 19-я.
Чтобы использовать последнюю 19-ю версию среди путей в переменной Path убедимся, что путь C:Program FilesCommon FilesOracleJavajavapath располагается выше
путей к сборкам JDK от Microsoft. Для перемещения определенного пути вверх среди переменных среды можно использовать кнопку «Вверх:
Также можно напрямую создать использовать путь «C:Program FilesJavajdk-19bin».
Для создания новой переменной надо нажать на кнопку «Создать» и ввести в новое поле путь «C:Program FilesJavajdk-19bin». Но опять же его следуется с помощью кнопки Вверх поместить
над путями к OpenJDK от Microsoft.
После установки переменной Path перейдем к командной строке/терминалу (в более старых версиях Windows может потребоваться перезауск командной строки) и для проверки версии введем команду
Консоль нам должна в ответ ввести номер только что установленной версии JDK:
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)
И после этого можно вводить только названия утилит без полных путей: