Over a million developers have joined DZone.

3 Ways to Diff Java Code in IntelliJ [Video]

DZone's Guide to

3 Ways to Diff Java Code in IntelliJ [Video]

IntelliJ has an inbuilt diff tool which you can use to compare files, classes or code with the clipboard. Just right-click and choose Compare.

· Java Zone ·
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

I was busy refactoring code in RestMud this morning because I want to try and open source the basic game engine, and then later the Web/REST API, but I want to tidy up the code a little first.

I've been working through the code:

  • Moving classes into new packages
  • Splitting classes to make code clearer and easier to manage
  • New classes make code easier to test

And the more I tidy it up in general, the easier it is to spot smaller problems of code duplication.

Sometimes I fix the duplication by:

  • Extracting code into a new class and delegating functionality off to the class
  • Extracting code into private methods

IntelliJ has an incredibly useful piece functionality to help with that in the form of the Compare Tool.

The Compare Tool

The compare tool is a built-in diff tool.

I can use it in three different ways:

  • Right-click on a file and "Compare" then choose a file on my hard drive to compare with
  • Select two classes in the project view and right click to "Compare"
  • Select code, add it into the clipboard, then highlight a different block of code and "Compare with Clipboard"

They all use the same 'diff' view, which is much easier than:

  • Using a separate tool like WinMerge to compare files outside of the IDE.
  • Splitting the window and visually trying to compare code

I show all three approaches in this short YouTube video.

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat

java ,diff ,intellij ,compare ,tutorial ,refactoring

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}