{"id":13778214,"url":"https://github.com/update4j/update4j","last_synced_at":"2025-05-11T11:35:13.474Z","repository":{"id":45445913,"uuid":"124780056","full_name":"update4j/update4j","owner":"update4j","description":"Create your own auto-update framework","archived":true,"fork":false,"pushed_at":"2023-06-22T20:31:24.000Z","size":686,"stargazers_count":780,"open_issues_count":0,"forks_count":73,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-02-13T20:30:29.155Z","etag":null,"topics":["auto","auto-update","download","downloader","dynamic","dynamically","java","launch","launcher","update","updater","webstart"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/update4j.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["mordechaim"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://paypal.me/MordechaiM"}},"created_at":"2018-03-11T17:16:40.000Z","updated_at":"2024-02-11T11:23:40.000Z","dependencies_parsed_at":"2024-01-06T22:30:00.296Z","dependency_job_id":"db38ed29-5c3f-4b6e-8628-ea530120d563","html_url":"https://github.com/update4j/update4j","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/update4j%2Fupdate4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/update4j%2Fupdate4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/update4j%2Fupdate4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/update4j%2Fupdate4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/update4j","download_url":"https://codeload.github.com/update4j/update4j/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225043291,"owners_count":17411957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auto","auto-update","download","downloader","dynamic","dynamically","java","launch","launcher","update","updater","webstart"],"created_at":"2024-08-03T18:00:52.114Z","updated_at":"2024-11-17T13:31:30.035Z","avatar_url":"https://github.com/update4j.png","language":"Java","readme":"# [![update4j-logo][3]][3]\n\n[![Build Status](https://travis-ci.org/update4j/update4j.svg?branch=master)](https://travis-ci.org/update4j/update4j)   [![Apache License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)   ![Java-9+](https://img.shields.io/badge/java-9%2B-orange.svg)   [![Maven Release](https://img.shields.io/badge/maven%20central-v1.5.9-yellow.svg)](https://search.maven.org/search?q=org.update4j)    [![Gitter](https://badges.gitter.im/update4j/update4j.svg)](https://gitter.im/update4j/update4j?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\n\n**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)**\n\n_Create a framework_: design the environment and lifecycle (\u0026mdash;bootstrap) to make your own auto-update framework and hack it to the core, or use the built-in default bootstrap.\n\n## Screenshots\n\n### Headless\n\nUsing the default bootstrap, downloads 4 files then launches `hello-world.jar`. You can see that subsequent runs won't download again.\n\n[![headless][2]][2]\n\n### JavaFX\n\nUsing a custom bootstrap implemented to report progress in JavaFX, downloads 4 files then launches `hello-world.jar`.\n\n[![javafx][1]][1]\n\n\n## Overview\n\nUpdate4j 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.\n\nIn 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).)\n\n\n\n## Installation \u0026 Usage\n\nYou can [download](https://repo1.maven.org/maven2/org/update4j/update4j/1.5.9/update4j-1.5.9.jar) or install using Maven:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.update4j\u003c/groupId\u003e\n    \u003cartifactId\u003eupdate4j\u003c/artifactId\u003e\n    \u003cversion\u003e1.5.9\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nYou can use it as a regular dependency, or you may run it as a runnable JAR file. \n\nTo run it in the modulepath, use either of:\n\n```shell\n$ java -p update4j-1.5.9.jar -m org.update4j\n$ java -p . -m org.update4j\n\n```\n\nTo run it in the classpath, use either of:\n\n```shell\n$ java -jar update4j-1.5.9.jar\n$ java -cp * org.update4j.Bootstrap\n```\n\nFor more information refer to [Starting the Application](https://github.com/update4j/update4j/wiki/Documentation#starting-the-application) in the wiki.\n\n\n## What's New in 1.5.x — [Migration Guide](https://github.com/update4j/update4j/wiki/Migration-to-1.5.x)\n  * 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)\n  * Deprecated previous update models, but still available for smooth migration.\n  * Improved update return value as `UpdateResult`. [#87](https://github.com/update4j/update4j/issues/87)\n  * 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)\n  * `ignoreBootConflict` no longer required if there are no user modules on the boot module layer.\n  * `DefaultBootstrap::updateFirst` now performs update in parallel while launching the business app. [#104](https://github.com/update4j/update4j/issues/104)\n  * Support Elliptic Curve cipher. [#89](https://github.com/update4j/update4j/issues/89)\n  * Clamp update handler `frac` values between 0 and 1. [#106](https://github.com/update4j/update4j/issues/106)\n\n## Sponsors\n\n[![Basil Inc](https://avatars.githubusercontent.com/u/1634032?s=75)](https://github.com/basil-inc)\n\n## License\n\nThis project is licensed under the [Apache Software License 2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\n\n  [1]: https://i.stack.imgur.com/Hz1G7.gif\n  [2]: https://i.stack.imgur.com/Ttf8Z.gif\n  [3]: https://i.stack.imgur.com/L6WAF.jpg\n","funding_links":["https://github.com/sponsors/mordechaim","https://paypal.me/MordechaiM"],"categories":["Community","Java","Libraries, Tools and Projects"],"sub_categories":["Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupdate4j%2Fupdate4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupdate4j%2Fupdate4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupdate4j%2Fupdate4j/lists"}