---
title: "Minecraft \"Error: Unable to access jarfile\": Causes and Fixes"
description: "Unable to access jarfile is printed by the Java launcher before the JVM starts, so no log is written. Here is how to tell it apart and what to change."
url: "https://www.gameserverkings.com/knowledge-base/minecraft/error-unable-to-access-jar-file/"
category: "Minecraft"
category_url: "https://www.gameserverkings.com/knowledge-base/minecraft/"
published: "2026-08-19T09:24:46.947Z"
updated: "2026-08-19T09:34:00.333Z"
source_format: "markdown"
site: "GameServerKings"
---

# Minecraft "Error: Unable to access jarfile": Causes and Fixes

Your server stops after one line, and it is not a Minecraft line:

```text title="Console output"
Error: Unable to access jarfile server.jar
```

That message comes from the `java` launcher itself, before the Java Virtual Machine has started, before Minecraft exists. It is worth knowing exactly what produces it, because it rules out an enormous amount of what people usually check. For the wider set of startup failures, see [Reading Minecraft Server Logs and Crash Reports](/knowledge-base/minecraft/reading-crash-logs-and-common-errors/).

## What It Actually Means

The launcher was given `-jar <name>` and could not open `<name>` for reading. That is the whole condition. It covers exactly two situations:

- **The file is not there** — wrong name, wrong folder, or it was never created.
- **The file is there but cannot be read** — permissions, or a partially written upload.

The launcher does not care whether the file is a valid jar at this point. It has not looked inside it yet.

> [!IMPORTANT] No log file is written, and that is the strongest clue you have
> Because the JVM never starts, Minecraft never starts, so **`logs/latest.log` is not created or updated at all**. If your console shows this line and `logs/latest.log` is still from an earlier run, that confirms the diagnosis on its own. The launcher exits with status 1 and nothing else happens.

## Tell It Apart From Its Four Siblings

Four other one-line launcher errors look similar and mean different things. Matching yours exactly saves you from fixing the wrong thing.

| The line you have | What it means | What to change |
|---|---|---|
| `Error: Unable to access jarfile server.jar` | The file is missing or unreadable | The filename, or where the file lives |
| `Error: Invalid or corrupt jarfile server.jar` | The file **is** there and readable, but it is not a valid archive | Re-download it — the upload or install was truncated |
| `no main manifest attribute, in server.jar` | A valid archive with no entry point declared | You uploaded a plugin, mod or library jar instead of a server jar |
| `Error: Could not find or load main class …` | A classpath was given instead of a jar, and the class named is not on it | The startup configuration, not the file |
| `Error: could not open 'unix_args.txt'` | Forge or NeoForge launched from an arguments file that is missing | Reinstall — the installer did not finish |

That last one matters more than it looks. Modern Forge and NeoForge do not launch from a jar at all; they launch from an arguments file. Our Minecraft egg detects this and switches automatically, so if you see `could not open 'unix_args.txt'`, the framework is right and the **install** is what failed.

## Causes, in the Order to Check Them

### 1. The filename does not match the Server Jar File variable

The commonest cause by a distance. The **Server Jar File** variable on the Startup tab defaults to `server.jar`, and the launcher is given exactly that string. A file called `paper-26.2-112.jar` sitting in the root of your server is invisible to it.

**Check:** open the File Manager, look at the root of your server, and compare the filename character for character against the Server Jar File variable on the **Startup** tab.

**Fix:** change one of the two so they match. Renaming the file is usually the safer of the two, because an installer that re-runs will write to the name it expects.

### 2. The jar is in a subfolder

Uploaded into `plugins/`, or into a folder the archive created when it was extracted. The launcher's working directory is the root of your server and it does not search.

**Check:** the jar must be in the top-level directory, alongside `server.properties` and `eula.txt`.

> [!TIP] The variable only accepts a bare filename
> The Server Jar File field is validated against a pattern that permits letters, digits, dots, dashes and underscores followed by `.jar` — and nothing else. **A path will be rejected**, so `mods/server.jar` is not something you can type your way out of. Move the file instead.

### 3. The install did not finish

A first boot on a new server, or a Minecraft Version change, runs an installer that downloads the jar. If that download failed — a bad version string, a build number that does not exist, an upstream outage — the file is simply never created.

**Check:** scroll to the very top of the console for the install output. It runs before the launch command and reports what it fetched.

**Fix:** confirm the **Minecraft Version** and **Build Number** variables are values that actually exist for your **Framework**, then reinstall. `latest` for both is the safe pair while you are diagnosing. [Updating Your Minecraft Server](/knowledge-base/minecraft/updating-your-server-version/) covers version strings; [Minecraft Server Software Compared](/knowledge-base/minecraft/choosing-server-software/) covers which framework tracks what.

### 4. A partial or zero-byte upload

An SFTP transfer that dropped, or a browser upload that timed out, leaves a file of the right name and the wrong size.

**Check:** the file size in the File Manager. A Minecraft server jar is tens of megabytes. A few hundred bytes means the transfer failed.

**Fix:** delete it and upload again — [How to upload files via SFTP](/knowledge-base/general/how-to-upload-files-via-sftp/) covers the connection. Note that a *complete but corrupt* file gives you `Invalid or corrupt jarfile` instead, so the two messages together tell you how far the transfer got.

### 5. A space in the filename

`java -jar my server.jar` reads `my` as the jar and `server.jar` as an argument, producing this same error against a name you never typed.

**Check:** the error text quotes back the name it tried. If that is a fragment of your filename, this is why.

**Fix:** rename the file with no spaces. Dashes and underscores are fine.

### 6. You extracted the jar

A `.jar` is a zip archive, so file managers and browsers sometimes offer to unpack it. What lands is a folder, not a file — and a folder of the right name gives `Invalid or corrupt jarfile`, because it can be opened but is not an archive.

**Fix:** upload the `.jar` itself, without unpacking it.

## What This Error Is Not

- **It is not a Java version problem.** Wrong Java produces `UnsupportedClassVersionError`, which requires the jar to have been opened and read first. If you are seeing this error, the runtime never got that far. [Reading Minecraft Server Logs and Crash Reports](/knowledge-base/minecraft/reading-crash-logs-and-common-errors/) covers the class-file-version table.
- **It is not a memory problem.** The JVM has not started, so it has not sized a heap.
- **It is not a mod or plugin problem.** Nothing has been loaded.
- **It is not an EULA problem.** That check happens inside a running server and produces its own explicit message.
- **It is not something a player sees.** Nobody can connect, but the reason is that there is no server process at all.

## On a GameServerKings Server

The launch command builds itself from your variables, and only two of them are involved here:

```bash title="The relevant part of the launch command"
java … $(if [[ ! -f unix_args.txt ]]; then printf %s "-jar {{SERVER_JARFILE}}"; else printf %s "@unix_args.txt"; fi) {{EXTRA_FLAGS}}
```

- **Server Jar File** supplies the name. Default `server.jar`, filename only, must end in `.jar`.
- If `unix_args.txt` exists in the root, the command uses it **instead** of `-jar`. That is how Forge and NeoForge are handled, and it means a leftover `unix_args.txt` from a previous framework will hijack the launch of a Paper or Fabric server. If you have switched Framework and the server will not start, check for that file and remove it.

Changing either variable takes effect on the **next start**, not immediately.

## Other Named Errors in This Cluster

One page per message, all six indexed from [Reading Minecraft Server Logs and Crash Reports](/knowledge-base/minecraft/reading-crash-logs-and-common-errors/):

- `**** FAILED TO BIND TO PORT!` — [Minecraft "Failed to Bind to Port"](/knowledge-base/minecraft/error-failed-to-bind-to-port/)
- `Failed to verify username!` — [Minecraft "Failed to verify username!"](/knowledge-base/minecraft/error-failed-to-verify-username/)
- `Connection closed - mismatched mod channel list` — [Minecraft "Connection closed - mismatched mod channel list"](/knowledge-base/minecraft/error-mismatched-mod-channels/)
- `java.lang.OutOfMemoryError: Java heap space` — [Minecraft "java.lang.OutOfMemoryError: Java heap space"](/knowledge-base/minecraft/error-out-of-memory-java-heap/)
- `Can't keep up! Is the server overloaded?` — [Minecraft "Can't keep up! Is the server overloaded?"](/knowledge-base/minecraft/error-cant-keep-up/)

## What to Read Next

- [Reading Minecraft Server Logs and Crash Reports](/knowledge-base/minecraft/reading-crash-logs-and-common-errors/) — the index of startup errors and how to read a stack trace
- [Minecraft Server Software Compared](/knowledge-base/minecraft/choosing-server-software/) — which framework produces which files
- [Updating Your Minecraft Server](/knowledge-base/minecraft/updating-your-server-version/) — version strings, build numbers and safe upgrades
- [How to upload files via SFTP](/knowledge-base/general/how-to-upload-files-via-sftp/) — for replacing a jar that did not transfer cleanly
- [Getting started with your Minecraft server](/knowledge-base/minecraft/java-getting-started/) — the Startup tab and its variables

---

Made with 💜 by GameServerKings
