Search code examples
eclipsespring-tool-suite

Can we use different JDK's for Spring tool Suite based on eclipse and eclipse luna


I have some projects in my eclipse Luna that are based on Java 1.6 and I am trying to learn the latest spring boot which uses Java 1.8 , I am learning spring boot on spring tool suite which is based out of eclipse ,I tried installing Java 1.8 in my system and I have successful install both 1.6 and 1.8 Java in my system but when I try to open Spring tool suite it says JDK version should be 1.8 or higher I know I have the classpath set as 1.6 but is there anyway we can set the classpath 1.6 for eclipse Luna and Java 1.8 classpath for spring tool suite because I constantly change over projects as because Java 1.6 is my production environment in Java 1.8 is something like a test where I am trying to learn spring tool suite.

Is there any way we can achieve this without having to change the classpath everytime I Switch between spring tool Suite and eclipse Luna


Solution

  • The first thing to understand is that Eclipse itself requires a JRE to run (preferably a JDK), and that JRE can be different than the one that your projects in Eclipse are configured to use - they are intentionally separate.

    To specify the JRE that Eclipse itself runs in, you should specify it in eclipse.ini. Read that page carefully, the format is very particular. Once you've done that, your system classpath or JAVA_HOME or PATH will not matter, Eclipse prefers its own ini settings.

    With that done, the default JRE/JDK used for your projects in Eclipse will be the same as the one Eclipse itself is running in. But that's only the default, you can add more JRE/JDKs and configure individual projects to use them.

    The point is, each instance of Eclipse can be configured to run in a particular JRE/JDK you have on your system (although there's really no reason not to use the latest for running all Eclipse instances), and then within each Eclipse instance, each project can be configured to use a specific JRE/JDK (which may or may not be the same one that that Eclipse instance is running in).

    For example, you should probably configure both Eclipse Luna and STS to use the JDK 8 you have, via their .ini files. Then in Luna you can add a JRE config for JDK 1.6 on your system and set projects to use that one. The projects don't have to use the same JRE/JDK that Eclipse itself is running in.