Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/update4j/update4j
Create your own auto-update framework
https://github.com/update4j/update4j
auto auto-update download downloader dynamic dynamically java launch launcher update updater webstart
Last synced: 3 months ago
JSON representation
Create your own auto-update framework
- Host: GitHub
- URL: https://github.com/update4j/update4j
- Owner: update4j
- License: apache-2.0
- Archived: true
- Created: 2018-03-11T17:16:40.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-22T20:31:24.000Z (over 1 year ago)
- Last Synced: 2024-02-13T20:30:29.155Z (about 1 year ago)
- Topics: auto, auto-update, download, downloader, dynamic, dynamically, java, launch, launcher, update, updater, webstart
- Language: Java
- Homepage:
- Size: 670 KB
- Stars: 780
- Watchers: 29
- Forks: 73
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- AwesomeJavaFX - Update4j - Auto-updater and launcher for your distributed applications. Built with Java 9's module system in mind. (Libraries, Tools and Projects)
- aboutfx - Update4j - updater and launcher built with Java 9 module system in mind. | (Community / Tools)
README
# [![update4j-logo][3]][3]
[](https://travis-ci.org/update4j/update4j) [](http://www.apache.org/licenses/LICENSE-2.0)  [](https://search.maven.org/search?q=org.update4j) [](https://gitter.im/update4j/update4j?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
**Read the [documentation](https://github.com/update4j/update4j/wiki/Documentation), explore the [JavaDoc](https://s3.amazonaws.com/docs.update4j.org/javadoc/update4j/index.html), or [see it in action](https://github.com/update4j/update4j/wiki/Demo-Application)**
_Create a framework_: design the environment and lifecycle (—bootstrap) to make your own auto-update framework and hack it to the core, or use the built-in default bootstrap.
## Screenshots
### Headless
Using the default bootstrap, downloads 4 files then launches `hello-world.jar`. You can see that subsequent runs won't download again.
[![headless][2]][2]
### JavaFX
Using a custom bootstrap implemented to report progress in JavaFX, downloads 4 files then launches `hello-world.jar`.
[![javafx][1]][1]
## Overview
Update4j is the first auto-update and launcher library designed for Java 9+. Easily host your application files anywhere (even Google Drive, Dropbox, Amazon S3, or Maven Central) and you can synchronize them with all your distributed applications. You can use [any protocol you wish](https://gitter.im/update4j/update4j?at=5c7067c1a378ef11f6236c86) to retrieve those files and may be protected under authenticated API.
In update4j _you_ have ultimate control of every process, from startup - update - launch - shutdown, since it's a library (you call the 3rd party code) not a framework (3rd party calls your code outside your control). In addition, every single piece of code is completely updatable; [even update4j itself](https://github.com/update4j/update4j/wiki/Documentation#updating-update4j-itself), once a new version is released! (Well, if you properly [set up the environment](https://www.reddit.com/r/java/comments/ih0vcu/comment/g4apb68).)
## Installation & Usage
You can [download](https://repo1.maven.org/maven2/org/update4j/update4j/1.5.9/update4j-1.5.9.jar) or install using Maven:
```xml
org.update4j
update4j
1.5.9```
You can use it as a regular dependency, or you may run it as a runnable JAR file.
To run it in the modulepath, use either of:
```shell
$ java -p update4j-1.5.9.jar -m org.update4j
$ java -p . -m org.update4j```
To run it in the classpath, use either of:
```shell
$ java -jar update4j-1.5.9.jar
$ java -cp * org.update4j.Bootstrap
```For more information refer to [Starting the Application](https://github.com/update4j/update4j/wiki/Documentation#starting-the-application) in the wiki.
## What's New in 1.5.x — [Migration Guide](https://github.com/update4j/update4j/wiki/Migration-to-1.5.x)
* New update model `Configuration.update(ArchiveUpdateOptions)`, using an `Archive` to store update files, it can then be 'installed' (calling `Archive::install`). [#76](https://github.com/update4j/update4j/issues/76)
* Deprecated previous update models, but still available for smooth migration.
* Improved update return value as `UpdateResult`. [#87](https://github.com/update4j/update4j/issues/87)
* Using the `DefaultLauncher`, not passing `default.launcher.main.class` will run the command-line arguments as a script. [#88](https://github.com/update4j/update4j/issues/88)
* `ignoreBootConflict` no longer required if there are no user modules on the boot module layer.
* `DefaultBootstrap::updateFirst` now performs update in parallel while launching the business app. [#104](https://github.com/update4j/update4j/issues/104)
* Support Elliptic Curve cipher. [#89](https://github.com/update4j/update4j/issues/89)
* Clamp update handler `frac` values between 0 and 1. [#106](https://github.com/update4j/update4j/issues/106)## Sponsors
[](https://github.com/basil-inc)
## License
This project is licensed under the [Apache Software License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
[1]: https://i.stack.imgur.com/Hz1G7.gif
[2]: https://i.stack.imgur.com/Ttf8Z.gif
[3]: https://i.stack.imgur.com/L6WAF.jpg