can't start eclipse - java was started but returned exit code=13
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
Eclipse exit code 13 usually means the launcher could not start a compatible Java runtime for that Eclipse build. This is typically an environment mismatch, not a project source-code issue. The fastest fix is to align Java architecture, Java version, and eclipse.ini configuration.
What Exit Code 13 Usually Indicates
Common root causes:
- 64-bit Eclipse with 32-bit Java, or inverse mismatch
- Java path points to unsupported runtime
- malformed
eclipse.iniordering - unsupported Java major version for that Eclipse distribution
The message is generic, so diagnosis should start with architecture and launcher config, not plugin troubleshooting.
Verify Java Binary and Architecture
Check active Java details first.
On macOS or Linux, replace where with which.
Then confirm Eclipse package architecture from download source. If one side is x86 and the other is x64 or arm64, reinstall to align.
Also confirm you are launching the intended Eclipse binary, not an older installation still on path.
Configure eclipse.ini Correctly
eclipse.ini parsing is strict. -vm must come before -vmargs, and it must point to executable, not folder.
If -vm is misplaced or path is wrong, launcher may report exit 13 even though Java is installed.
Match Eclipse Release with Supported Java Version
Not every Eclipse package supports every Java major version equally on day one. Verify compatibility notes for your release train.
A practical approach:
- install one known-supported JDK line
- pin that path in
eclipse.ini - avoid relying on global
PATHresolution for IDE startup
This makes startup deterministic across machine restarts and OS updates.
Clean Startup State and Workspace Isolation
If configuration appears correct but error persists:
- test launch with a clean workspace folder
- temporarily disable custom startup args not required for basic launch
- verify no stale duplicated Eclipse installs are being opened
This helps separate workspace or plugin issues from launcher/runtime mismatch.
Team Provisioning Best Practices
For teams, document a standard setup matrix:
- Eclipse build version
- required Java major and architecture
- expected
eclipse.initemplate - platform-specific install paths
Automate preflight checks where possible. A small script that prints Java architecture and verifies eclipse.ini order can prevent repeated onboarding failures.
For managed environments, keep a “known good” machine profile and compare failing machines against it before changing project settings.
Recovery Script Idea
A simple diagnostic command set for support tickets:
Collect these outputs with OS version and Eclipse package name. This short bundle often reveals mismatch immediately.
If your organization manages developer machines centrally, add this check to login scripts or developer bootstrap tools. Failing early with a precise mismatch message is far cheaper than troubleshooting after IDE setup drifts for weeks unnoticed. Include one known-good launcher screenshot in onboarding docs so path expectations remain unambiguous.
Common Pitfalls
Installing matching Java version but wrong architecture for Eclipse binary.
Pointing -vm to JRE folder instead of javaw executable.
Placing -vm after -vmargs in eclipse.ini.
Relying on whichever Java appears first in PATH rather than explicit launcher configuration.
Summary
- Exit code 13 is usually a Java launcher compatibility issue.
- Align Eclipse architecture and Java architecture first.
- Set
-vmcorrectly ineclipse.inibefore-vmargs. - Use a Java version supported by your Eclipse release.
- Standardize setup documentation to reduce repeat environment failures.

