
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.
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.
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
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.