{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

How to Format Java Code Using Eclipse JDT?

Published by

Yo probably format your code often by pressing Ctrl+Shift+F or right clicking Source -> Format. This function is also provide in JDT, so you can also format your Java code in code.

However finding correct class to do this function is not straight-forward, because one of them is a internal class.

The following is the code to format Java code by using DefaultCodeFormatter.

import org.eclipse.jdt.core.ToolFactory;
import org.eclipse.jdt.core.formatter.CodeFormatter;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.text.edits.MalformedTreeException;
import org.eclipse.text.edits.TextEdit;
public class FormatterTest {
	public static void main(String[] args) {
		String code = "public class TestFormatter{public static void main(String[] args){System.out.println(\"Hello World\");}}";
		CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);
		TextEdit textEdit = codeFormatter.format(CodeFormatter.K_COMPILATION_UNIT, code, 0, code.length(), 0, null);
		IDocument doc = new Document(code);
		try {
		} catch (MalformedTreeException e) {
		} catch (BadLocationException e) {

he apply() method in TextEdit class is the key to this problem. It applies the edit tree rooted by this edit to the GIVEN document.

Output in console:


Depending on your Eclipse version, you will need the following jar files:

  1. org.eclipse.core.contenttype_3.4.1.R35x_v20090826-0451.jar
  2. org.eclipse.core.jobs_3.4.100.v20090429-1800.jar
  3. org.eclipse.core.resources_3.5.2.R35x_v20091203-1235.jar
  4. org.eclipse.equinox.common_3.5.1.R35x_v20090807-1100.jar
  5. org.eclipse.equinox.preferences_3.2.301.R35x_v20091117.jar
  6. org.eclipse.jdt.core_3.5.2.v_981_R35x.jar
  7. org.eclipse.osgi_3.5.2.R35x_v20100126.jar
  8. org.eclipse.text_3.5.101.v20110928-1504.jar
  9. org.eclipse.core.runtime_3.5.0.v20090525.jar



Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB.

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

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

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks