Loading...
The VyroAI team · Published 17 Aug 2026 · 5 min read
You have the code. Someone wrote it for you, an AI produced it, or you followed a tutorial. What you do not have is a .jar — and every guide to getting one starts with "install the JDK, install Maven, configure pom.xml".
An online compiler skips that. You give it the plugin, it builds it against the server API, and you download a .jar your server can load.
Worth knowing, because it explains every error you will hit.
A Minecraft plugin is not just Java source. To become a plugin it needs:
1. The right API on the build path. Your code calls org.bukkit. (or net.md_5. for BungeeCord). Those classes come from the server platform's API jar. Wrong version, wrong methods, no build. 2. plugin.yml inside the jar. Name, main class, version, api-version, commands, permissions. A jar without it loads as nothing at all. This is the single most common reason a "compiled" plugin does nothing on the server. 3. Dependencies resolved. Vault, PlaceholderAPI, an economy API — anything you import must exist at build time, even if it is only installed at runtime. 4. Packaging. Classes, plugin.yml and resources zipped into one jar with the right structure.
Doing that locally means a JDK, Maven or Gradle, and a build file that is correct. Doing it online means uploading the code and pressing a button.
The whole loop — write or paste, build, download — lives on one page. On VyroAI the plugin is written from a description, compiled server side against your chosen platform (Paper, Spigot, Bukkit, Folia, Velocity, BungeeCord), and the .jar is a download button. Build errors are read back and fixed in the same session rather than pasted into a search engine.
This is the option to want if you do not intend to become a Java developer: the compiler is not a separate step you manage, it is part of the build.
Sites that compile arbitrary Java in a sandbox. They work for a single file with no dependencies and fall over on a real plugin, because they have no Bukkit API on the class path and no way to package plugin.yml. Fine for learning Java, not for shipping a plugin.
Push the project to GitHub, let a workflow run mvn package, download the jar from the run artifacts. Free, reproducible, and genuinely good — if you already know what a workflow file is. This is the technical route, not the shortcut.
Compiler output is written for people who already understand it. Translations:
cannot find symbol / package org.bukkit does not exist The API is not on the build path, or you targeted the wrong platform. Building a Paper plugin against BungeeCord produces exactly this.
plugin.yml not found / Cannot load plugin, main class not found It compiled, but the descriptor is missing or the main field does not match the real package and class name. Rename one and the other must follow.
unsupported class file major version / has been compiled by a more recent version of the JVM Java version mismatch. The plugin was built on a newer JDK than the server runs. Modern Paper wants Java 21; an old server may be on 17 or 8. Match the target to the server.
Deprecation warnings Not errors. The plugin builds. It means a method you used is on its way out — worth fixing eventually, not now.
It builds, loads, and does nothing Not a compiler problem. The commands or listeners are not registered, or the permission gate is denying you. Read the startup lines in the console: an enabled plugin says so.
- Declare the target before you build. Platform and Minecraft version, every time. - Check plugin.yml yourself. Open the jar with any zip tool. If main: does not match the class inside, nothing else matters. - Load it on a local server first. A Paper jar on your own machine, plugin in /plugins, watch the console on startup. Never debut a new plugin on the live server. - Keep the source. A jar you cannot rebuild is a dead end the first time you want a change.
If you are maintaining a large plugin, working with a team, or you already have IntelliJ open — build locally. Online compiling wins on setup cost, and setup cost stops mattering once you have paid it.
And if your goal was never to write Java in the first place, do not start at the compiler. Start by describing the plugin and let the tool write and compile it. The compiler was only ever the step in the middle.
Can I compile a Minecraft plugin without installing Java? Yes — the build runs on their machines, not yours. You still need Java installed to run a server locally, but not to produce the plugin.
Is an online-compiled jar different from a locally compiled one? No. Same compiler, same output, as long as the same API version and Java target are used. A jar has no memory of where it was built.
Can I upload an existing plugin project and just build it? Depends on the tool. IDE-style builders that expect to write the code from a description are not upload-a-Maven-project services. If you have a full project with a pom.xml, GitHub Actions is the better fit.
Which Java version should I target? Match your server. Paper on recent Minecraft versions wants Java 21; older servers may be on 17 or 8. Building newer than the server runs gives the unsupported class file major version error above.