{"id":15016137,"url":"https://github.com/neoforged/serverstarterjar","last_synced_at":"2025-07-25T21:08:53.364Z","repository":{"id":246755129,"uuid":"822299124","full_name":"neoforged/ServerStarterJar","owner":"neoforged","description":"Jar executables that can directly start a NeoForge server","archived":false,"fork":false,"pushed_at":"2025-01-01T17:07:03.000Z","size":92,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-07T16:22:13.968Z","etag":null,"topics":["forge","minecraft","neoforge","server"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neoforged.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"neoforged","open_collective":"neoforged"}},"created_at":"2024-06-30T21:08:49.000Z","updated_at":"2025-04-05T05:46:38.000Z","dependencies_parsed_at":"2024-08-02T16:30:45.763Z","dependency_job_id":"8ade9059-5cea-40e0-8765-3ef082ddb122","html_url":"https://github.com/neoforged/ServerStarterJar","commit_stats":{"total_commits":27,"total_committers":1,"mean_commits":27.0,"dds":0.0,"last_synced_commit":"4c05f7d22c492382a4bc7174392874821d26ca92"},"previous_names":["neoforged/serverstarterjar"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neoforged%2FServerStarterJar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neoforged%2FServerStarterJar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neoforged%2FServerStarterJar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neoforged%2FServerStarterJar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neoforged","download_url":"https://codeload.github.com/neoforged/ServerStarterJar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248546223,"owners_count":21122273,"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":["forge","minecraft","neoforge","server"],"created_at":"2024-09-24T19:48:27.186Z","updated_at":"2025-04-12T09:32:29.919Z","avatar_url":"https://github.com/neoforged.png","language":"Java","funding_links":["https://github.com/sponsors/neoforged","https://opencollective.com/neoforged"],"categories":[],"sub_categories":[],"readme":"# ServerStarterJar\nServerStarterJar is a same-process wrapper around the Forge (1.17+) and NeoForge server run scripts.  \n\nThis project brings back the `server.jar` file in old versions, that can be used when a server host does not support custom launch scripts (such as the `run.sh` file).\n\n## Installation\nTo use the starter, simply download the `server.jar` file of [the latest release](https://github.com/NeoForged/serverstarterjar/releases/latest/download/server.jar)\nand place it in the folder the `run.sh`/`run.bat` scripts are located (you may need to run the NeoForge installer first with the `--install-server` argument; check the [installer section](#running-the-installer) for more information).  \nAfterwards, you may run the jar as an executable (i.e. `java -jar server.jar`).\n\n\u003e [!IMPORTANT]  \n\u003e Any JVM arguments (such as `-Xmx`) placed in the `user_jvm_args.txt` file will *not* be picked up by default. You'll need to run `java @user_jvm_args.txt -jar server.jar`.\n\n## Compatible Versions\nThis starter is compatible with all [MinecraftForge](https://minecraftforge.net) versions since 1.17, and with all [NeoForge](https://neoforged.net) versions.\n\n## Running the installer\nIf the starter cannot find the run scripts, it will attempt to run an installer.  \nIt will first try to run the first file ending with `-installer.jar` from the folder.  \n\nYou may specify an installer to download instead using the `--installer` option (i.e. `java -jar server.jar --installer 21.0.46-beta`).  \nThe installer specified can either be a link to an installer (i.e. `https://maven.neoforged.net/releases/net/neoforged/neoforge/21.0.46-beta/neoforge-21.0.46-beta-installer.jar`)\nor a **NeoForge version** to download the installer for (i.e. `21.0.46-beta`).\n\n\u003e [!NOTE]\nThe installer will only be run if the starter cannot find the run scripts. You may force it to run if the installer version and the installed version differ using `--installer-force`.\n\n## How it works\nBelow you will find the steps the start goes through to launch a modular NeoForge environment:\n1. search the folder the starter was invoked in for the `run.sh` (*nix) / `run.bat` (Windows) file\n2. find the `java` invocation in the run script\n3. extract and parse any argument file references (`@[...]`)\n4. if a `-jar` argument is found:\n    - put it on the system classpath alongside all entries specified in the `Class-Path` manifest entry\n    - update the `java.class.path` system property with the new entries\n5. otherwise\n   - parse the module path (`-p`) argument, and load the jars on a new module layer, which will replace the boot layer\n   - parse the `--add-exports`/`--add-opens` arguments and replicate them using Java instrumentation module redefinition\n   - ignore the `--add-modules` arguments as they're irrelevant since the module path is fully loaded as the boot layer\n6. set the system properties (`-D\u003cname\u003e=\u003cvalue\u003e`) specified by the args file\n7. consider the `Main-Class` attribute of the jar / the first remaining argument the main class, load it, and retrieve its `main(String[])` method\n8. append any arguments specified to the starter executable to the remaining arguments 9\n9. launch Minecraft with the remaining arguments\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneoforged%2Fserverstarterjar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneoforged%2Fserverstarterjar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneoforged%2Fserverstarterjar/lists"}