- PVSM.RU - https://www.pvsm.ru -
Сегодня я вам расскажу, как поэтапно с нуля создать простое приложение на JavaFX, что для этого потребуется, покажу как сделать установщик Windows (msi) для вашего приложения. Это мой первый пост на Хабре, так что не судите строго.
Важно! Перед тем как приступать к созданию приложения, необходимо стандартно применяемую JRE без компилятора поменять на JDK. Подключим предварительно скачанную JDK и сделаем ее дефолтной: заходим в настройки Window->Preferences:
Выбираем стандартную виртуальную машину:
Указывает путь к директории на вашем компьютере, где лежит, предварительно скаченная версия JDK:
После нажатия на Finish, устанавливаем JDK как дефолтный:
Также укажем ее как дефолтную для JavaSE-1.8:
Теперь приступим к самому интересному, создадим новый проект JavaFX File->New->Project…
Настраиваем проект, думаю тут все очевидно:
Напишем наше небольшое приложение (в директории с Main.java должны лежать: иконка favicon-16x16.png и звук click.wav):
package application;
import java.net.URL;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Tooltip;
import javafx.scene.image.Image;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.AnchorPane;
import javafx.scene.media.AudioClip;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
AnchorPane root = new AnchorPane();
root.setPadding(new Insets(5.0));
Button button = createButton();
AnchorPane.setBottomAnchor(button, 0.0);
AnchorPane.setTopAnchor(button, 0.0);
AnchorPane.setBottomAnchor(button, 0.0);
AnchorPane.setRightAnchor(button, 0.0);
AnchorPane.setLeftAnchor(button, 0.0);
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 300);
primaryStage.setTitle("Хабрахабр");
primaryStage.getIcons().add(new Image(getResource("favicon-16x16.png").toExternalForm()));
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
private Button createButton() {
Button result = new Button("Жми");
result.setTooltip(new Tooltip("Не бойся, жми!"));
result.setCursor(Cursor.HAND);
result.setOnMouseClicked(mouseEvent -> {
new AudioClip(getResource("click.wav").toString()).play();
showDialog();
});
return result;
}
private URL getResource(String name) {
return getClass().getResource(name);
}
private void showDialog() {
Alert dialog = new Alert(AlertType.INFORMATION);
dialog.initStyle(StageStyle.UTILITY);
dialog.setTitle("Инфо");
dialog.setHeaderText("Привет мир!");
dialog.showAndWait();
}
public static void main(String[] args) {
launch(args);
}
}
Запускаем:
Отлично, теперь нам надо запаковать это приложения для конечного пользователя, в корневой директории лежит предназначенный для этого файл build.fxbuild, который генерирует xml файл, использующийся в свою очередь сборщиком Ant, настроим этот файл:
Если нажать в правой части Generate ant build.xml only, то создается корневой папке создается конфигурационный билд для Ant buildbuild.xml перед тем, как запускать его, необходимо скачать Wix Toolset с ресурса: wix.sf.net [3] (если генерируется exe, то для него требуется Inno Setup с ресурса jrsoftware.org [4]) иначе Ant сгенерирует все, кроме нужного нам .msi в консоли при сборке напишет про это. После того как вы установили Wix, необходимо прописать в переменных среды путь к bin директории и перегрузить компьютер.
Запускаем Ant билд:
После сборки появится установщик msi, который можно запускать (приложение по дефолты ставится в C:Program FilesHabrApp):
Все просто, однако у меня возникли проблемы с .exe инсталлятором, во время установки и в последующем при запуске приложения (само приложение не запускается) в журнал событий Windows валится ошибка (ругается на packeger.dll) к слову устанавливается приложение по дефолту в папку C:UsersВадимAppDataLocalHabrApp:
Всем спасибо за внимание, надеюсь моя статья кому-нибудь помогла.
Автор: VADMARK
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/151523
Ссылки в тексте:
[1] здесь: https://eclipse.org/downloads/
[2] www.eclipse.org/efxclipse/install.html: https://www.eclipse.org/efxclipse/install.html
[3] wix.sf.net: http://wix.sf.net
[4] jrsoftware.org: http://jrsoftware.org/
[5] Источник: https://habrahabr.ru/post/304856/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.