ECJ error-Task cannot continue because ECJ is not installed

Eclipse uses ECJ (Eclipse Compiler for Java) for building liferay plugins. ecj.jar needs to be configured in eclipse to avoid ecj error.

Eclipse is one of the most well know IDE for Java professional today. Liferay provides eclipse plugin to build and run various liferay plugins( like portlets, hooks, layouts, themes, ext etc) on server. Eclipse uses separate compiler called ECJ (Eclipse compiler for java) to build liferay plugins.

Liferay eclipse plugin uses this compiler (ECJ) to build plugins which is most of the time faster than javac. Liferay plugin SDK ships with ecj.jar. When you configured eclipse plugin for liferay sdk and server, you might encounter following ecj error while building any potlet (or any other liferay plugins like hook, theme, layout etc).

Task cannot continue because ECJ is not installed.
ECJ was automatically installed. Please rerun your task.
What does this mean ? Liferay by default uses ant to build various plugins. There is one property file called build.properties (under liferay plugin-sdk folder). You will find following entry in it.
javac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter

It instruct ant to use ecj to build liferay plugin and above ecj error is encountered because eclipse doesn’t fine ecj jar.

Resolve ECJ error in clipse

To avoid this follow below steps.

Click on Window–>Preferences menu from eclipse and select Ant–>Runtime as per below screenshot.

Liferay_Preference - ecj error

 

  • Click on ‘Ant Home Entries(Default)‘ and click on ‘Add External Jars‘.
  • Celect ecj.jar from your liferay-plugi-sdk/lib folder as per below screenshot.

select_ecj_jar - ecj error

 

  • Click on ‘Open’ button and select ‘OK’ button from eclipse preferences window.

And you are done. You can verify by building any portlets (or any other liferay plugins) to make sure the ECJ error will not appear again.

Another way to configure ecj.jar in clipse.

As an alternative way, you can place ecj.jar from your  folder to your eclipse/plugins/org.apache.ant_1.8.3.v201301120609/lib folder. If you observe this path (eclipse/plugins/org.apache.ant_1.8.3.v201301120609/lib) after performing the first option, you will see the ecj.jar is added in this place. This ant version under eclipse/plugins may be different based on your eclipse version.

Note: This issue (ecj error) is only occur (until you point ecj.jar into eclipse ant) while building liferay plugins from eclipse. If you run ant script through command prompt, you won’t encounter such issue.

Summing Up

  • Liferay provides eclipse plugin to build and run various liferay plugins on Liferay server.
  • Eclipse use’s separate compiler called ECJ (Eclipse Compiler for Java) to compiler liferay plugins.
  • Liferay plugins sdk ships with ecj.jar which needs to be configure in eclipse otherwise it will throw ecj error while building liferay plugins.
  • You can either directly place it from your liferay-plugin-sdk/lib folder to your eclipse/plugins/org.apache.ant_XXXX/lib folder.
  • You can refer this link to get more info about ECJ error.

Share This Post

Post Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.