К настоящему времени вы, вероятно, слышали о новой модульной системе Java 9, известной как проект Jigsaw. Если вы не знаете о новой модульной системе Java 9, вам следует посетить статью Марка Рейнхольда о состоянии модульной системы. Кроме того, вы должны проверить превосходный блог Николая Парлога @nipafx по адресу http://blog.codefx.org. Там он подробно расскажет о новой модульной системе Java 9 и многих сценариях.
В этой статье я попытаюсь показать вам, как создать приложение JavaFX Helloworld с использованием модульной системы Java 9 за 60 секунд.
Требования
На момент написания этой статьи Java 9 все еще находится на ранней стадии доступа, что означает, что вам нужно будет загрузить последние сборки по адресу https://jdk9.java.net/download/.
- Советник JDK 9, сборка 114 или выше ( советник JDK 9 )
инструкции
Предполагая, что вы установили свой JDK и установили соответствующие переменные окружения. Также вам нужно перейти в командную строку или терминал и ввести: java -version, чтобы проверить установленный JDK. Например.
Шаг 1: Создайте каталог в вашем домашнем каталоге для вашего проекта, например, следующий для Windows OS, Linux и MacOS соответственно. Кроме того, создайте каталог src в вашем каталоге проекта helloworld.
|
01
02
03
04
05
06
07
08
09
10
11
12
|
# Windows c:\Users\myusername>md helloworld c:\Users\myusername>md helloworld/src # Linux /user/home/myusername $ mkdir -p helloworld/src # Mac /Users/myusername$ mkdir -p helloworld/srccd helloworld |
Шаг 2. Создайте каталог, используя простое соглашение об именах, основанное на новом способе организации исходного кода и модулей в Java 9.
Создайте каталог с именем вашего модуля, например: com.mycompany.helloworld . Предполагая, что текущим каталогом является <User’s Home dir> / helloworld /
|
1
|
mkdir src/com.mycompany.helloworld |
Шаг 3. Создайте каталоги на основе пространства имен вашего пакета в файле HelloWorld.java. В этом простом примере основной Helloworld.java будет создан с использованием следующей структуры каталогов:
|
1
|
mkdir -p src/com.mycompany.helloworld/com/mycompany/helloworld |
Каталоги должны выглядеть следующим образом:
|
1
2
3
4
5
6
7
|
<User Home dir>/ helloworld/ src/ com.mycompany.helloworld/ com/ mycompany/ helloworld/ |
Шаг 4: Создайте файл module-info.java . Это позволяет компилятору знать, какие зависимости базовых модулей необходимо приложению для компиляции и запуска, например, модули javafx. Создайте файл с именем module-info.java в каталоге helloworld / src / com.mycompany.helloworld. Скопируйте и вставьте приведенный ниже код в файл module-info.java. Используйте vi, nano или блокнот.
|
1
2
3
4
5
6
|
module com.mycompany.helloworld { requires javafx.base; requires javafx.graphics; requires javafx.controls; exports com.mycompany.helloworld;} |
Шаг 5: Создайте файл приложения HelloWorld.java. Файл будет создан в каталоге helloworld / src / com.mycompany.helloworld / com / mycompany / helloworld /. Скопируйте и вставьте приведенный ниже код в приложение HelloWorld.java.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package com.mycompany.helloworld;import javafx.application.Application;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.scene.Group;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.stage.Stage;/** * A JavaFX Hello World */public class HelloWorld extends Application { /** * @param args the command line arguments */ public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setTitle("Hello World"); Group root = new Group(); Scene scene = new Scene(root, 300, 250); Button btn = new Button(); btn.setLayoutX(100); btn.setLayoutY(80); btn.setText("Hello World"); btn.setOnAction( actionEvent -> System.out.println("Hello World")); root.getChildren().add(btn); stage.setScene(scene); stage.show(); }} |
Шаг 5: Скомпилируйте исходный код с опцией -d с указанием расположения скомпилированного модуля. Каталог для нового модуля helloworld: mods / com.mycompany.helloworld .
|
1
|
javac -d mods/com.mycompany.helloworld src/com.mycompany.helloworld/module-info.java src/com.mycompany.helloworld/com/mycompany/helloworld/HelloWorld.java |
Шаг 6: Запустите приложение Hello World как модуль. После компиляции модуля в каталог mods вы теперь будете использовать новую опцию -modulepath в Java 9, чтобы указать каталог скомпилированного модуля. Также вы укажете опцию -m для запуска модуля и его основного класса HelloWorld. Используйте следующую команду:
|
1
|
java -modulepath mods -m com.mycompany.helloworld/com.mycompany.helloworld.HelloWorld |
Вывод предыдущей команды:
Вывод
Не уверен, что вы потратили более 60 секунд, но при условии, что ваша среда настроена и JDK 9 установлен, вы сможете вырезать и вставить код за считанные секунды. Я нахожу новую модульную систему Java 9 довольно простой. Хотя для того, чтобы компилятор знал, где находятся модули, требуется немного больше ввода, но на самом деле он не слишком отличается от опции -classpath .
Я вижу, как крупные проекты могут разбивать компоненты на модули и извлекать из этого пользу. Я считаю, что это действительно захватывающие времена в мире Java, потому что инструменты смогут создавать тонкие исполняемые файлы, таким образом, ускоряя время загрузки. Я чувствую, что это очень долго, но очень нужная функция, которая побудит нас писать, управлять и развертывать модульное программное обеспечение.
| Ссылка: | JavaFX HelloWorld с использованием Jigsaw Project 9 в течение 60 секунд от нашего партнера JCG Карла Деа в блоге Carl’s FX Blog . |
