Snifx

Version 1.0
Spring Native Installable JavaFX application template
Snifx is a starter for developing Desktop Java FX applications with Spring. Deployable as Fat Jar (all platforms) or as OS native installers for Windows(exe, msi), Linux(rpm, deb) and MacOS(dmg, pkg, app).
  • Frontend in JavaFX
  • Backend in Spring core and Spring context (validated with 4.x and 5.x)
  • A Spring component is a JavaFX component at the same time
  • Packages as a "Fat jar" (java -jar ...) - Maven plugin in POM
  • May create native OS installers (supports JRE bundle) - via javapackager tool
  • Contains a starter JavaFX controller(it is also a Spring component)
  • Contains some basic UI components
  • i18n ready - examples in English, French, German and Russian
  • Provides a default skin with sample images for styled buttons(OK, Cancel, etc.)
  • Application state if needed is under user's home directory
  • Open-source and completely Free!
GitLab
Hadjo for Hadoop - started from Snifx
Requirements:
The project can be compiled, packaged and run on any OS that has JDK/JRE version 11 or newer.
Example Snifx usage:
Hadjo is an application built on top of Snifx. Packaged as a fat jar for all platforms with JRE.
Datacore - uses Snifx for Data analytics

Used for Analytics:
Datacore uses Snifx for dekstop applications for data visualization and analytics of Big Data.

Get Started

Project Packages:

  • src/main/java - well, the Java code
  • src/main/java/com/lazyweaver/snifx/components/controller - your Spring/JavaFX components. There is a starter example "RootLayoutController".
  • src/main/resources/resources/fxml - FXML files for UI
  • src/main/resources/resources/i18n - internationalization files. Accommodates sample properties for English, French, German and Russian
  • src/main/resources/resources/skins - so far has one skin "default" with main.css and a couple of icon PNGs for styling buttons
  • src/main/deploy - (optional) consists of sample resources related to creating native installers (exe for Windows, deb/rpm for Linux, dmg for MacOS, etc.) via javapackager or third-party tools. Contains sample PNG, BMP and other images that can be replaced by you. Config files include "YourApp" and "YourCompany" values that can be totally replaced.

Howto

Package (all OS)

Fat Jar (java -jar ...)
  • StepGo to the root of the project and invoke mvn clean && mvn clean package
  • ResultThe fat jar will be placed under your project's "shade/" folder. You are free to add bat, sh or other stuff if desired.

Create Native OS Installers (Windows)

EXE and MSI
  • Step (optional)If you want to have an EXE package of your application then install on your Windows for free Inno Setup.
  • Step (optional)If you want to have an MSI package of your application then install on your Windows for free WiX Toolset. MSI packages are generated using the Windows Installer XML toolset (also known as WiX). As of JavaFX 2.2, WiX 3.0 or later is required, and it must be available on the PATH. To validate, try running candle /? from the command line.
  • StepWhen the setup is ready on your Windows use javapackager to create the native installer, see javapackager documentation for parameter configurations

Create Native OS Installers (Linux)

DEB and RPM
  • Step (optional)If you want to have an RPM package of your application then install on your Linux for free rpmbuild.
  • Step (optional)If you want to have an DEB package of your application then install on your Linux for free dpkg-deb and fakeroot.
  • StepWhen the setup is ready on your Linux use javapackager to create the native installer, see javapackager documentation for parameter configurations

Create Native OS Installers (MacOS)

DMG and PKG
  • StepNo special tools are needed to generate a DMG, PKG or App, just a decently recent version of OSX.
  • StepWhen the setup is ready on your MacOS use javapackager to create the native installer, see javapackager documentation for parameter configurations

Screenshots

Contact

Contact Us

Snifx is free and thus we do our best to provide support for it.

You may contact us about general inquiries, to report bugs in the template or suggest features or improvements!

info@lazyweaver.com