Desktop java on android

Desktop java on android

Краткое описание:
Работа с java

##О приложении
Этот проект создан для изучения и создания Java приложений на Android.
Вы можете создать и запустить Ява-приложение с JDK 1.7.

(НЕт оффициальной поддержки) Создайте apk-файл (поддержка только armeabi-v7a, x86, x86_64)

## Туториалы(Советы по использованию)
1. Настройте систему https://youtu.be/FZtSbgq8ZN0
2. Создайте файл при помощи библиотеки https://youtu.be/fUFqR8ZlChg
3. Создайте Android приложение https://youtu.be/euZilR8-EhA

##Внимание
Это бета версия,которая будет часто обновляться.

## Todo(. Оставлено по английски,иначе будет утрачен смысл.
1. Java compiler JDK 1.7 ✔
2. Java editor ✔
3. Java auto complete code ✔ (But not working perfect)
4. Java debugger (jdb).
5. Run java file, class file ✔
6. Build java library ✔
7. Support VCS
8. Decompile class, jar
9. Java code formatter (Google Java code formatter) ✔
10. Build Android app. ✔
11. XML auto complete
12. Layout builder for Android

## Что содержит проект?
1. Javac — Java compiler
2. Aapt — Android asset package tool
3. Dx — Dex for dalvik vm
4. Zip Signer
5. Apk сборщик

Это приложение бесплатно, потому что я хочу помочь людям изучать Java. Я работаю для людей. Если вы хотите поддержать проект нажмите на кнопку Донат в приложении.

## Overview
This project is develop to help the community learn java on android.
You can build and run Java file with JDK 1.7.

(No official support) Build apk file (only support armeabi-v7a, x86, x86_64)

##Attention
Because this is beta version so I will update very often.

## Todo
1. Java compiler JDK 1.7 ✔
2. Java editor ✔
3. Java auto complete code ✔ (But not working perfect)
4. Java debugger (jdb).
5. Run java file, class file ✔
6. Build java library ✔
7. Support VCS
8. Decompile class, jar
9. Java code formatter (Google Java code formatter) ✔
10. Build Android app. ✔
11. XML auto complete
12. Layout builder for Android

## What does tools the project include?
1. Javac — Java compiler
2. Aapt — Android asset package tool
3. Dx — Dex for dalvik vm
4. Zip Signer
5. Apk builder

## Contribute
I would absolutely love every possible kind of contributions. If you
have a questions, ideas, need help or want to propose a change just open
an issue. Pull request are greatly appreciated.

This app is free for everyone to learn Java. I work for the community. If you want to donate to the project, you can click donate button in the application.

Источник

Приложения-эмуляторы Java для Android

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

Возможности Java на Android

Мобильный телефон на ОС Андроид работает только на языке Java. Приложения, программы, игры и даже сама система написаны на Джаве. Разработчики, которые знают этот синтаксис, способны работать с компаниями, создающими мобильные устройства и ПО для них.

Вот основные причины этого:

  • платформа для программирования предлагает большие библиотеки и открытый код для инструментов;
  • помогает бороться с утечкой памяти и другими проблемами встроенного кода;
  • разработка последних версий приложений нацелена на сохранение стабильности телефона;
  • безопасность настолько высока, что, скачав вирусные приложения на телефон, пользователь не передаст злоумышленникам управление ядром ОС;
  • перекомпилировать код и переписывать файлы не придется – новое оборудование будет поддерживать возможности языка.

Скачать Java на Андроид нужно из-за того, что эмуляторы позволяют запустить старые игры и приложения, которые не переведены в формат .apk. Расширение не было актуально до появления смартфонов.

Загрузка эмулятора на Android

Скачать приложение-эмулятор Java для Андроид можно бесплатно на этой странице. Просто кликните по кнопке нужной программы под описанием.

Java в формате .apk следует устанавливать на смартфоны с помощью стандартных средств ОС. Чтобы скачать эмулятор, в дополнительных настройках безопасности устройства разрешите установку приложений из неизвестных источников.

Общие требования:

Операционная система Android 4.0 и выше
Язык интерфейса Русский, Английский
Размер От 1 до 24 Мб
Возрастное ограничение 3+

Java Manager: Emulate для телефона

Позволяет проводить разработку под Android на телефоне, создавая искусственную среду. Пользователь сможет компилировать код или запускать программы, написанные на языке Java.

Установка приложения на мобильный не требует получения root-прав, поэтому дополнительных инструкций по «взлому» Андроида нет.

J2ME Loader

Приложение для запуска 2D-игр на устройствах с ОС Андроид. Эмулятор Java 2 Micro Edition поддерживает 3D с небольшими ограничениями, но это редко требуется пользователям. Присутствует возможность масштабирования и виртуальная клавиатура.

Скачайте приложение J2ME Loader с помощью официального магазина Google Play или с нашего сайта.

J2ME Runner

Еще один эмулятор, запускающий файлы, написанные на языке Java, но не реализованные в формате .apk. Из недостатков – неработоспособность на Андроид 4.0 и несовместимость с экранами планшетов. Переводит программы из расширения .jar в .apk.

Установочный файл можно скачать на специализированном форуме 4PDA . Получение root-прав не требуется.

Видео: Как запустить Java-игры на Android с помощью J2ME Runner.

Использование эмулятора Java

Рассмотрим использование эмуляторов Java на ОС Android на примере J2ME Loader.

  1. Запустите приложение – вас встретит белый фон и кнопка «+». Сделано так, чтобы искать контент по вкусу, а не загромождать смартфон ненужными играми или программами.
  2. Разработчики добавили JAR ReMart – магазин, где в свободном доступе находятся интересные приложения. Скачайте их и запустите через «+».
  3. Необязательно активировать весь арсенал кнопок и опций. Оставьте на экране те элементы управления, которые актуальны для определенной игры.

Масштаб и перемещение настраиваются без ограничений.

Источник

Desktop java on android

Сегодня речь пойдет о том, как запускать полноценные java-приложения на устройствах под управлением Android, для чего это может быть необходимо и какие приложения будут актуальны для мобильной платформы. Полноценные приложения это те, для запуска которых не хватает возможностей Dalvik VM. Таким приложениям необходима JRE. Далее поговорим о том, как ее установить и работать с ней.

Читайте также:  Как настроить андроид тв бокс h96 max

Установка

Для установки JRE требуется установить какой-нибудь terminal и busybox. Последний пакет требует наличия root-прав. О том, как получить root-права для Android можно прочесть здесь. Сама JRE не требует root. Скачать приложение можно из основного репозитория альтернативного маркета F-droid, либо самостоятельно собрать пакет из исходного кода. Сам процесс установки тривиален, все как и для любого другого apk-файла. После запуска программы она предложит докачать дополнительные библиотеки (glibc, awt и т.д.). Кстати, все зависимости, вроде терминала и busybox программа также способна скачать самостоятельно. Разумеется, для максимальной совместимости необходимо отметить все элементы.

Использование

Для запуска jar-архива нажимаем на кнопку «run jar file», программа запрашивает доступ к файловой системе. Выбираем программу, с помощью которой указываем файл для запуска.

Лично я рекомендую Total Commander в качестве файлового менеджера. Он бесплатен и очень удобен, плюс есть поддержка плагинов.

Так вот, после выбора файла открывается окно терминала, который запускает java-машину и передает ей путь к выбранному jar-файлу. Далее, в зависимости от программы, работа будет через терминал, либо запустится отрисовка интерфейса. Очень легко и удобно, не правда ли? К сожалению, есть небольшой косметический недочет, при первом запуске в терминале криво отображается путь к исполняемому файлу java и передаваемым аргументам.

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

На рисунке результат запуска небольшого тестового проекта. Его код приведен ниже

Что касается GUI-приложений, то мой AExplorer отказался запускаться, ссылаясь на отсутствие поддержки в текущих версиях.

Тем не менее, «полноценные» консольные приложения работают без особых проблем.

Итоги

Не смотря на очевидные недоработки в запуске оконных приложений, на сегодняшний день уже возможно запускать консольные java-приложения. Они работают без каких-либо проблем, если не используют каких-либо дополнительных нативных библиотек. В таком случае необходимо сначала собрать библиотеку на устройстве, а уже потом запускать jar-архив. Тем не менее, java installer на сегодняшний день вполне жизнеспособный проект.

Источник

Скажи «нет» Electron! Пишем быстрое десктопное приложение на JavaFX

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

Если вы не знаете Electron, то это по сути веб-браузер (Chromium) в котором работает только ваше веб-приложение… словно настоящая десктопная программа (нет, это не шутка)… это даёт возможность использовать веб-стек и разрабатывать кросс-платформенные десктопные приложения.

Самые новые, хипстерские десктопные приложения в наше время сделаны на Electron, в том числе Slack, VS Code, Atom и GitHub Desktop. Необычайный успех.

Мы писали десктопные программы десятилетиями. С другой стороны, веб только начал развиваться менее 20 лет назад, и на протяжении почти всего этого времени он служил только для доставки документов и анимированных «гифок». Никто не использовал его для создания полноценных приложений, даже самых простых!

Десять лет назад невозможно было себе представить, что стек веб-технологий можно использовать для создания десктопного приложения. Но наступил 2017 год, и много умных людей полагают, что Electron — отличная идея!

Здесь не столько результат превосходства веб-стека для создания приложений (он далёк от такого превосходства, и вряд ли кто-то будет спорить, что веб — это бардак), сколько провал существующих фреймворков для разработки UI на десктопах. Если люди предпочитают отгружать со своими программами целый веб-браузер только для того, чтобы использовать отличные инструменты вроде JavaScript (сарказм) для разработки, что-то пошло совершенно не так.

Так что это за ужасные альтернативы, которые проиграли конкурентную борьбу веб-стеку?

Я решил взглянуть и создать реальное приложение на одной из этих технологий.

Альтернативы Electron

Ели вы не возражаете, что несколько групп разработки будут создавать разные версии приложения под разные ОС, то варианты выглядят примерно так: AppKit для MacOS, WPF для Windows (я не специалист по разработке под конкретные платформы, так что дайте знать, пожалуйста, какие варианты в наши дни более популярны).

Однако реальные конкуренты Electron — это мультиплатформенные фреймворки. Думаю, среди них самыми популярными сегодня являются GTK+, Qt и JavaFX.

GTK+ написан на C, но связан со многими другими языками. Этот фреймворк использовался для разработки прекрасной платформы GNOME-3.

Qt кажется самой популярной альтернативой Electron в дискуссиях, которые попадались мне на глаза… Это библиотека C++, но тоже связанная с другими языками (хотя кажется, что никакие из них не поддерживаются на коммерческой основе, и сложно сказать, насколько они доработаны). Qt вроде бы популярный выбор для встроенных систем.

JavaFX

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

Что бы вы ни думали о JVM, не существует никакой другой платформы (кроме, может быть, самого Electron!), настолько простой для кросс-платформенной разработки. Как только вы создали свой jar, на любой платформе, вы можете распространять его среди пользователей всех ОС — и он просто будет работать.

При большом разнообразии языков, которые сейчас поддерживаются в JVM, выбор языка тоже не должен стать проблемой: определённо найдётся такой, какой вам понравится (в том числе JavaScript, если вы не способны от него отказаться), и вы можете использовать JavaFX с любым языком JVM без особых проблем. В этой статье, кроме Java, я покажу немного кода на Kotlin.

Сам UI создаётся просто кодом (если у вас есть замечательная поддержка IDE от IntelliJ, Eclipse или NetBeans: это всё отличные бесплатные IDE, которые, наверное, превосходят любых конкурентов и, кстати, представляют собой самые лучшие образцы десктопных приложений на Java) или в визуальном конструкторе UI: SceneBuilder (который умеет интегрироваться в IntelliJ) или NetBeans Visual Debugger.

JavaFX — не новая технология. Она появилась в декабре 2008 года и сильно отличалась от того, что мы видим сегодня. Идея заключалась в создании современного фреймворка UI для замены устаревшего Swing Framework, который являлся официальным фреймворком JVM с конца 90-х.

Oracle чуть не испортила всё с самого начала, приступив к созданию особого, декларативного языка, который предполагалось использования для создания UI приложений. Это не очень хорошо восприняли Java-разработчики, и та инициатива чуть не погубила JavaFX.

Заметив проблему, Oracle решила выпустить JavaFX 2 в 2011 году без собственного особого языка, а вместо этого применив FXML в качестве опции для чистого Java-кода (как мы увидим позже).

Читайте также:  Русские мессенджеры для андроид

Около 2012 года JavaFX обрёл некую популярность, а Oracle приложила значительные усилия для улучшения и популяризации этой платформы. С версии 2.2 фреймворк JavaFX стал достаточно цельным фреймворком, но его по-прежему не включали в стандартную среду выполнения Java (хотя он всегда поставлялся вместе с JDK).

Только с версии JavaFX 8 (изменение версии сделано для соответствия Java 8) он стал частью стандартного рантайма Java.

Сегодня фреймворк JavaFX может и не является крупным игроком в мире UI, но на нём сделано немало реальных приложений, у него есть довольно много связанных библиотек и его портировали на мобильную платформу.

Создание приложения JavaFX

В своём приложении для просмотра логов LogFX, я решил просто использовать Java (потому что там в основном довольно низкоуровневый код, а я хотел сконцентрироваться на скорости и малом размере пакета) и IntelliJ в качестве IDE. Я почти решился писать на Kotlin, но поддержка Java в IntelliJ оказалась настолько хорошей, так что писать на Java (точнее, позволить IntelliJ делать это за меня — это ближе к истине) стало не такой большой проблемой, чтобы оправдать лишние 0,9 МБ в дистрибутиве.

Я решил не использовать FXML (язык описания GUI для JavaFX на основе XML) или визуальный конструктор UI, потому что интерфейс у программы очень простой.

Итак, посмотрим на какой-нибудь код!

Java Hello World

Приложение JavaFX — это просто класс, который расширяет javafx.application.Application и показывает JavaFX Stage .

Вот как пишется Hello World на JavaFX:

На «маке» этот код покажет примерно такое:

FXML+Java Hello World

Если вам трудно писать код для UI и вы предпочитаете использовать язык разметки, вот эквивалент того же кода с FXML:

Обратите внимание, что IntelliJ поддерживает FXML и свяжет его содержимое с соответствующим кодом Java и наоборот, подсветит ошибки, сделает автодополнение, справится с импортом, покажет встроенную документацию и так далее, что довольно круто… но как я раньше сказал, решено было не использовать FXML, поскольку задуманный UI был очень простым и довольно динамичным… так что я больше не покажу кода FXML. Если интересно, изучите руководство по FXML.

Hello World на Kotlin+TornadoFX

Прежде чем двигаться дальше, давайте посмотрим, как такой код выглядит на современном языке вроде Kotlin с его собственной библиотекой для написания приложений JavaFX, которая называется TornadoFX:

Многим может показаться привлекательным использовать Kotlin и JavaFX, особенно если вы предпочитаете безопасность типов (в TornadoFX есть приятная функция «типобезопасные таблицы стилей») и если добавить лишние 5 МБ в приложения для вас не проблема.

Даже если подобные накладные расходы кажутся чрезмерными и вы не хотите включать фреймворк в программу (и разбираться со всеми его сложностями и причудами), то Kotlin нормально работает и с чистым JavaFX.

Стили и темы для пользовательского интерфейса JavaFX

Теперь, когда мы разобрались с основами JavaFX, посмотрим, как применить стили для приложений JavaFX.

Также как существуют различные подходы к макетированию, существуют и разные варианты стилей для JavaFX.

Предположим, что мы хотим сделать тёмный фон и белый текст, как показано на скриншоте:

Программные и встроенные стили

Один из вариантов (мучительный, но зато с безопасными типами) — сделать это программным способом:

Более простой программный способ — установить стили в CSS:

Обратите внимание, что здесь IntelliJ опять обеспечивает автодополнение для значений строк.

Если вы используете FXML:

Использование отдельных таблиц стилей

Если вы не хотите удаляться от мира веба и предпочитаете задавать стили в отдельных таблицах стилей, JavaFX и это умеет! Именно такой подход я выбрал, потому что он позволяет стилизовать всё в одном месте и даже даёт пользователям возможность выбирать стили на свой вкус.

Для этого сначала создаём таблицу стилей:

Теперь добавляем её в Scene :

Заметьте, что таблицы стилей устанавливают не только фоновый цвет StackPane как darkslategray , но и меняют основной цвет темы.

Это значит, что все управляющие элементы и «фоновые» элементы примут цвет, основанный на этом цвете. Довольно изящная функция, потому что вы можете устанавливать цвета на базе основного цвета. Так вы гарантируете, что если изменить основной цвет, то практически всё будет хорошо выглядеть в новой расцветке.

Например, в нашем случае более подходящим цветом текста станет не белый, а «противоположный» цвет относительно основного цвета темы, чтобы текст всегда оставался читаемым:

Таблицы стилей JavaFX довольно умные, для дополнительной информации см. CSS Reference Guide.

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


Слева: стили по умолчанию JavaFX. Справа: кастомные стили, созданные выше

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

Вот как LogFX выглядит в итоге с темой по умолчанию:

Обратите внимание, что для кнопок я использовал иконки FontAwesome. Было довольно просто стилизовать кнопки в CSS. Просто убедитесь в том, чтобы шрифт устанавливался как можно раньше с помощью такой инструкции:

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

Хотя хороший вкус автора этой зелёной темы под вопросом, она показывает мощные возможности стилизации в JavaFX. Здесь вы можете реализовать практически всё, на что способно ваше воображение.

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

В JavaFX это делается просто. Вот что у меня получилось (я сделал экран на основе образца GroovyFX):

И вот какая таблица стилей соответствует этому стартовому экрану:

Здесь возможно создание очень неплохих эффектов. Для дополнительной информации см. руководство.

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

Дизайн, отладка и перезагрузка кода

Практически невозможно создавать интерфейс пользователя без возможности мгновенно просматривать изменения. Поэтому важной частью любого фреймворка UI является «горячая» перезагрузка кода или некая разновидность конструктора UI.

У JavaFX (и у самой JVM) есть несколько вариантов решения этой проблемы.

SceneBuilder

Первое из них — это SceneBuilder, визуальный конструктор UI, который позволяет создавать FXML, просто перетаскивая компоненты UI.

Его можно интегрировать в любые Java IDE, что упрощает создание новых видов (экранов).

Мне раньше приходилось использовать SceneBuilder для создания форм и тому подобных сложных видов, но я обычно просто набрасывал там что-то по-быстрому, а затем редактировал код вручную для приведения его к конечному виду.

Читайте также:  Справочник радиолюбителя для андроид

Если вы так сделаете, а потом откроете вид в SceneBuilder, он по-прежнему будет нормально работать, так что можно поочерёдно редактировать код вручную или в SceneBuilder — и просматривать результат.

ScenicView

Как только у вас готов базовый дизайн, можно запустить ScenicView для просмотра и редактирования графа сцены при работающем приложении.

Представьте это как эквивалент инструментов разработчика в браузере.

Для запуска ScenicView со своим приложением просто скачайте jar и передайте параметр -javaagent:/path-to/scenicView.jar в JVM.

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

Горячая перезагрузка кода JVM

Если хотите изменить код приложения, который напрямую не связан с UI, то длоя этого подходит отладчик Java с горячей заменой кода во время работы приложения. Базовая поддержка перезагрузки кода имеется в Oracle JVM и HotSpot. Думаю, что она есть и в OpenJDK JVM.

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

Зато есть расширение HotSpot VM под названием DCEVM (Dynamic Code Evolution VM) с гораздо большей функциональностью: добавление/удаление методов и полей, добавление/удаление классов, изменение значения итоговых переменных и прочее. В другой статье я уже писал о нём и о других способах перезагрузки кода в работающей JVM.

Я использовал это расширение при разработке LogFX — и оно отлично себя проявило. Если не закрыть и заново не открыть окно, то вид не меняется автоматически при перезагрузке кода, но это не такая большая проблема, если менять что-то в Stage… к тому же, если вы хотите изменить только компонент UI, то можно использовать ScenicView или просто вернуться в ScenicBuilder и как угодно поменять дизайн.

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

В IntelliJ после изменения класса и перекомпиляции вы увидите нечто подобное (Cmd+F9 на «маке»):

Обновление таблиц стилей

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

Поскольку LogFX — программа для просмотра логов, у неё довольно продвинутый FileChangeWatcher , который подходит для просмотра стилей и их перезагрузки.

Но он работает только если стили поставляются из отдельного файла, а не из самого приложения (из jar).

Поскольку я уже разрешил пользователям устанавливать произвольный файл с таблицами стилей, то это не стало проблемой.

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

Для выбора таблицы стилей как файла (в отличие от ресурса jar), к сожалению, придётся использовать разный синтаксис под Unix/Mac и Windows. Вот такой метод я применил, чтобы решить проблему:

Это работает на Mac, Windows и Linux Mint. Но это только первая из двух проблем, которые возникают на разных ОС (вторая — то, что не отображается иконка в системном трее на Mac, хотя есть уродливое обходное решение этой проблемы). В остальном JavaFX всё абстрагирует довольно хорошо по большей части.

Наконец, когда диспетчер определил изменение в файле с таблицами стилей, вы можете обновить стиль, просто удалив его и немедленно добавив обратно:

Такой метод неплохо работает. Но если вы не хотите сами его писать, то ScenicView тоже умеет отслеживать таблицы стилей во внешних файлах (но не внутри jar), и TornadoFX тоже это поддерживает, так что здесь есть варианты.

Заключение

Создание приложения на JavaFX стало довольно приятным опытом. У меня имелась некоторая практика написания JavaFX-приложений для работы несколько лет назад (когда JavaFX находился на ранней стадии развития, что теперь уже осталось в прошлом), так что у меня определённо была некая фора… но я также работал как веб-разработчик и теперь не могу поверить, что кто-то предпочтёт использовать веб-стек вместо такой вменяемой среды как JVM.

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

curl -sSfL https://jcenter.bintray.com/com/athaydes/logfx/logfx/0.7.0/logfx-0.7.0-all.jar -o logfx.jar

Хотя это полностью функциональное приложение, файл jar весит всего 303 килобайта. Это 0,3 МБ, включая несколько картинок и файл шрифта TTF, и ещё несколько файлов HTML и CSS, помимо файлов классов Java!

Конечно, приложение не включает саму виртуальную машину JVM, но JVM не является частью программы и может использоваться для многих приложений! В Java 9 вы можете вообще создавать нативные исполняемые файлы, включая в них только необходимые части JVM, так что если вашим пользователям не нравится простой jar, то упакуйте его как нативное приложение, как я показывал в предыдущей статье (небольшое нативное приложение JVM займёт примерно 35 МБ или 21 МБ после оптимизации).

Для работы LogFX требуется около 50 МБ RAM (не для самого приложения, а в основном для JavaFX). В этом можно убедиться, запустив программу такой командой:

java -Xmx50m -jar logfx.jar

Это кардинально отличается от приложений Electron, которые обычно жрут 200 МБ уже в момент запуска.

JavaFX не идеальна и есть много областей, которые всё ещё нуждаются в улучшении. Одна из них — распространение и автоматическое обновление программ. Текущее решение, JNLP и Java WebStart, кажется слабо реализованным, хотя имеются альтернативы от сообщества, такие как Getdown и FxLauncher, а если вы хотите правильный нативный инсталлятор, то имеется и коммерческое решение Install4J (кстати, у Install4J есть бесплатные лицензии для проектов open source).

Осталось много вещей насчёт JavaFX, которые у меня не нашлось времени упомянуть в этой и так уже длинной статье, но некоторые из них, я считаю, достойны дополнительного изучения, если вам интересно:

  • Привязывание свойств позволяет легко внедрять реактивные UI.
  • Диаграммы на JavaFX выглядят великолепно.
  • Поддержка 3D в JavaFX.
  • Тестировочные фреймворки для JavaFX: TestFX и Automaton (дисклеймер: я являюсь автором Automaton и работал с командой, которая изначально разработала TestFX).
  • Демо-приложения JavaFX Ensemble показывают бóльшую часть возможностей JavaFX в реальной работе.

Источник

Оцените статью