Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gdevby/starter4j

Auto updating launcher for JavaFX and Swing applications
https://github.com/gdevby/starter4j

autostart desktop java javafx-library launcher update updater

Last synced: 2 months ago
JSON representation

Auto updating launcher for JavaFX and Swing applications

Awesome Lists containing this project

README

        

# desktop-desktop.starter
[Russian version](https://github.com/gdevby/desktop-starter-launch-update-bootstrap/blob/master/README_RU.md)

Status: beta

We want to create java desktop starter which can help to run java app faster and better. There is functionality to update your default application with low traffic and check the environment (memory amount, correct temp directory, etc.). We have detailed instructions to create installers for Windows, Linux, MacOS that will let you install java if your computer doesn't have it.

Allows you to easily change your application configs on the server side.

This solution is created on our 6-year experience in this area.



**It works for: Linux, MacOS, Windows.**



The project has the following life cycle:

You need to prepare files from your desktop application:


  1. Preparing files using config-generator

  2. Uploading files to your server

To run your desktop app will have next steps:


  1. Collects environment data

  2. Performs checks (availability of free space, correctness of the temp directory, access rights to the working directory, problems with display fonts)

  3. Downloads files (images, .jar, .zip, dependencies)

  4. Checks the correctness of files by hash (for example, java files)

  5. If necessary, updates your application to the user's choice (a selection window appears)

  6. fork this repository
  7. Launch your application

Additional features of the starter:

Solves the problem of changing the encoding if the username is in russian language, usually in this case it is impossible to run the application, we change the working directory to C:\program_name and display a message to the user about this.



You can check how the test desktop application installers work by downloading ready-made for:
1) [Windows Installer](https://github.com/gdevby/starter-app/raw/master/example-compiled-app/os_installer/StarterInstaller.exe)
2) **Linux**

Installation is done through the terminal, to do this, open the terminal and run the following command
```
wget https://github.com/gdevby/starter-app/blob/master/example-compiled-app/os_installer/installDebPackage.sh -O - | sh
```
3) **MacOs**

Installation is carried out through the terminal and from the browser. To run from a browser, you need to sign code signing your installer. In this example, we'll show you how to run it from the terminal. Open a terminal and run the command
```
curl --remote-name https://raw.githubusercontent.com/gdevby/starter-app/master/example-compiled-app/os_installer/starter-1.0.dmg && chmod +x ./starter-1.0.dmg && open -W ./starter-1.0.dmg
```

These modules can help you develop desktop applications:
1) Java paths, OS identification, user directories, in details [desktop-common-util]()
2) Multi-threaded download files and cache configs for desktop application, in detail [http-download](https://github.com/gdevby/desktop-starter-launch-update-bootstrap/blob/master/http-download/README.md )
3) Get information on GPU, downtime and system activity, in detail [desktop-common-util-additional]()

This project solves similar problems as launch4j, but it solves differently:
1) Doesn't pack jar into exe. An installer is created that will download the launcher and run your jar file
2) There is an update functionality, therefore it suits better for projects with a large audience
3) It also provides ready-made functionality for desktop applications (validation)
4) Solves some bugs with java

link to the next [instruction](https://github.com/gdevby/desktop-starter-launch-update-bootstrap/wiki/Create-config-file)