Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fatal error compiling: invalid target release: 1.8 -> [Help 1]

Tags:

java

maven

You have set your %JAVA_HOME to jdk 1.7, but you are trying to compile using 1.8. Install jdk 1.8 and make sure your %JAVA_HOME points to that or drop the target release to 1.7.

invalid target release: 1.8

The target release refers to the jdk version.


Put the value in the plugin:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

The error was use:

<source>${java.version}</source>
<target>${java.version}</target>

In my case the maven "Run configuration" was using the wrong JRE (1.7). Be sure to check Run -> Run Configurations -> (Tab) JRE to be some jdk1.8.x.


The issue was resolved as I was having a JDK pointing to 1.7 and JRE pointing to 1.8. Check in the command prompt by typing

java -version

and

javac -version

Both should be same.  


For eclipse here is how I solved my problem:

  1. Preferences --> Compiler --> Compiler Complainer Level (Change to 1.8) enter image description here

  2. Perferences --> Installed JREs --> select JAVA SE 8 1.8 enter image description here

  3. Rebuild via maven using Run as maven build.

It shouldn't show you the invalid target error anymore.
Note: I didn't have to set or change any other variables in my terminal. Hope this helps.


Putting that in your .profile will dynamically take care of your $JAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home)

Close your shell afterwards, open a new one and test with

echo $JAVA_HOME

It should display something like

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

If not, remove any other assignments of JAVA_HOME in your startup scripts. Remember, that these startup scripts start with a . so they are hidden and won't be included when using * wildcard, e.g. if you want to grep all files of your home directory, you need to:

grep -s JAVA_HOME ~/.* --exclude=.bash_history

I faced this issue deploying on Dokku, for some reason it was choosing JDK 1.7

Creating a system.properties file and setting java.runtime.version=1.8 solved the issue. Dokku now uses Java version 8. Choosing a JDK on Heroku

I Never had to do it before...