<commit_before># hello-fx

A "Hello World" application in JavaFX that is built using the JavaFX Maven plugin.

## Description

The main goal of this application is to demostrate the ability to build a JavaFX application and build it using Maven rather than the JavaFX Packager directly. In my experience, very few people or companies use Ant anymore; most folks are using Maven or Gradle now.

Through the use of the JavaFX Maven plugin, the build of a JavaFX application is greatly simplified, including being able to quickly create a native application.

Some links for documentation can be found at:

- [JavaFX Maven Plugin](http://zenjava.com/javafx/maven/)
- [Building a Native Application](http://zenjava.com/javafx/maven/native-bundle.html)

## Build a Native App

1. `mvn clean jfx:native`
2. Look for the the installer in `(project\target\jfx\bundles`.

This will build an installer for whatever platform you are building on. Building on a Mac will produce a Mac app. Building on a Windows PC will produce a Windows app.

## Building a Windows Installer and Native Application EXE

[From what I've read] Building a Mac DMG or Linux RPM works straight of the box. However, Windows requires either WiX for MSI creation or Inno Setup for an EXE-based installer (both install an EXE for the JavaFX application along with a packaged JRE).

Both don't need to be installed, just whichever one gets you to your desired installer format.

### Build an EXE Installer with Inno Setup

Follow the steps below to create an EXE-based installer with Inno Setup and the JavaFX Maven plugin.

1. Download from [Inno Setup's site](http://www.jrsoftware.org/isinfo.php)
2. Install it (I defaulted most of the installation options)
3. Add `C:\Program Files (x86)\Inno Setup 5` to your system `Path` variable.

Once done, run `mvn jfx:native` to create an EXE based installer at `(project)\target\jfx\native\bundles`.

By running the EXE installer, it installs the JavaFX application to the user's local app data folder, as well as an uninstaller entry in the `Programs and Features` control panel. The application is also launched immediately following installation.

### Build an MSI with WiX

To install WiX and have the JavaFX Maven plugin use it during a build, do the following:

1. Download from [WiX's site](http://wixtoolset.org/)
2. Install it.
3. Add `C:\Program Files (x86)\WiX Toolset v3.7\bin` to your system `Path` variable.

Once that is complete, `mvn jfx:native` will create an MSI file in `(project)\target\jfx\native\bundles`.

Running the MSI installs the application to `C:\Program Files (x86)\(project name)` without prompt. Additionally, it creates an uninstaller listing in the `Programs and Features` control panel.<commit_msg>Updated documentation with Maven build command and cleaned up some language<commit_after># hello-fx

A "Hello World" application in JavaFX that is built using the JavaFX Maven plugin.

## Description

The main goal of this application is to demostrate the ability to build a JavaFX application and build it using Maven rather than the JavaFX Packager directly. In my experience, very few people or companies use Ant anymore; most folks are using Maven or Gradle now.

Through the use of the JavaFX Maven plugin, the build of a JavaFX application is greatly simplified, including being able to quickly create a native application.

Some links for documentation can be found at:

- [JavaFX Maven Plugin](http://zenjava.com/javafx/maven/)
- [Building a Native Application](http://zenjava.com/javafx/maven/native-bundle.html)

## Build a Native App

1. `mvn clean jfx:native` (or `mvn clean install` ... the native packaging has been paired to the verify Maven phase)
2. Look for the the installer, DMG, or RPM in `(project)\target\jfx\bundles`.

This will build an installer for whatever platform you are building on. Building on a Mac will produce a Mac app. Building on a Windows PC will produce a Windows app.

## Building a Windows Installer and Native Application EXE

Building a Mac DMG or Linux RPM works straight of the box. However, Windows requires either WiX for MSI creation or Inno Setup for an EXE-based installer (both install an EXE for the JavaFX application along with a packaged JRE).

Both don't need to be installed, just whichever one gets you to your desired installer format.

### Build an EXE Installer with Inno Setup

Follow the steps below to create an EXE-based installer with Inno Setup and the JavaFX Maven plugin.

1. Download from [Inno Setup's site](http://www.jrsoftware.org/isinfo.php)
2. Install it (I defaulted most of the installation options)
3. Add `C:\Program Files (x86)\Inno Setup 5` to your system `Path` variable.

Once done, run `mvn jfx:native` to create an EXE based installer at `(project)\target\jfx\native\bundles`.

By running the EXE installer, it installs the JavaFX application to the user's local app data folder, as well as an uninstaller entry in the `Programs and Features` control panel. The application is also launched immediately following installation.

### Build an MSI with WiX

To install WiX and have the JavaFX Maven plugin use it during a build, do the following:

1. Download from [WiX's site](http://wixtoolset.org/)
2. Install it.
3. Add `C:\Program Files (x86)\WiX Toolset v3.7\bin` to your system `Path` variable.

Once that is complete, `mvn jfx:native` will create an MSI file in `(project)\target\jfx\native\bundles`.

Running the MSI installs the application to `C:\Program Files (x86)\(project name)` without prompt. Additionally, it creates an uninstaller listing in the `Programs and Features` control panel.
{'fraction_non_alphanumeric': 0.06696269982238011, 'fraction_numerical': 0.006039076376554174, 'mean_word_length': 4.388516746411483, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3884672', 'n_tokens_mistral': 1574, 'n_tokens_neox': 1516, 'n_words': 829}