background-image

Eclipse Migration Toolkit for Java

A comprehensive tooling project for assisting Java version migration. EMT4J provides static and dynamic tools with detailed analysis reports to help migrate Java applications from previous versions of OpenJDK with confidence and ease.

Multiple Tool Types

Java Agent, command-line tools, and Maven plugins provide flexible integration options for different development workflows and environments.

Incompatibility Analysis

Comprehensive analysis of potential incompatibility issues across Java versions, including JDK internal API usage and system changes.

Multiple Output Formats

Generate detailed analysis reports in HTML, TXT, and JSON formats to integrate with your existing development and documentation workflows.

ABOUT

Java Migration Made Simple

The Eclipse Migration Toolkit for Java (EMT4J) is designed to simplify the process of upgrading Java applications across versions. Whether you're migrating from JDK 8 to 11 or JDK 11 to 17, EMT4J provides the tools and insights you need.

By analyzing your codebase statically and dynamically, EMT4J identifies potential compatibility issues and provides detailed reports with actionable recommendations to ensure a smooth migration process.

Project Status
Incubating
Migration
Analysis
Toolkit
An active project under the Adoptium umbrella, continuously evolving to support the latest Java versions.
Available Tools
3 Integration Options
Java Agent
Runtime context & accurate call stack
Command-line Tool
Easy to use, no app startup required
Maven Plugin
Build phase integration
FEATURES

Flexible Integration Options

EMT4J provides three different tools to fit your development workflow:

  • Java Agent: Provides runtime context information and accurate call stack analysis to find more potential issues
  • Command-line Tool: Easy to use without starting your application, though may have some false positives
  • Maven Plugin: Integrates directly into your build process to catch issues during development
COMPATIBILITY

Supported Migration Paths

EMT4J supports analysis for the most common Java migration scenarios, covering both JDK 8 to 11 and JDK 11 to 17 upgrade paths.

Each migration path includes specific checks for known compatibility issues, API changes, and system modifications that could affect your application's functionality.

JDK 8 to JDK 11

  • • JDK Internal API usage detection
  • • System ClassLoader changes
  • • Arrays.asList return type changes
  • • Java Version schema updates
  • • JPMS add-exports and add-opens requirements
  • • Time zone data CLDR changes
  • • Pattern.compile API changes
  • • JVM option modifications

JDK 11 to JDK 17

  • • Removed Nashorn engine
  • • Removed RMI and Java Applet support
  • • Field access restrictions in some classes
  • • Additional API deprecations and removals

Start your Java migration journey today

Join developers worldwide who are using EMT4J to upgrade their Java applications with confidence and minimal risk.

Thank you to our 300+ contributors