Compiling Android project with JDK 1.7 - java

My Android project is set up to use Maven, so I imported into IntelliJ from the pom.xml file. The compiler settings in IntelliJ are correctly pointing to 1.7, but when I try to compile I get:
Error: java: javacTask: source release 1.7 requires target release 1.7
My settings for the maven compiler plugin has both source and target set to this, so that's not the problem. However, in the module settings I see that my module is using
Maven Android API 19 Platform (java version "1.6.0_37")
If I try changing this manually in IntelliJ when I open my project after closing it it gets set back. I think that it has something to do with the android-maven-plugin, but I don't see where to force it to use java 1.7.

There is nothing in the Android Maven Plugin that forces Java 6. It must have to do IntelliJ and its Maven integration somehow. Or some other related configuration.

Related

How can i change the Gradle Version in InteliJ?

I have the Error: "Found invalid Gradle JVM configuration"
"JDK 17.0.1 isnĀ“t compatible with gradle 7.1. Please fix JAVA_HOME enviroment variable"
Im not sure why it says gradle 7.1. The gradle Version i have is 7.4.2. This version should work with JDK 17
Take a look at the gradle-wrapper.properties file in the ./gradle/wrapper directory.
In the file, you can define the distribution URL from which Gradle is loaded. For example:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
As far as I know, IntelliJ adopts the version.
According to the Gradle documentation, Gradle 7.3 is the first Gradle version that supports JDK 17. You could try that one.

Java SDK Mismatch

I have an old WebSphere app that I'm trying to compile with Java 1.5. I'm working in in IntelliJ on Windows 10. In my Project Settings I have the Project SDK set as:
1.5 (java version "1.5.0_22")
I also have 1.8 available, but it's definitely not what's selected in the Project SDK.
When I do a rebuild on my project I see:
Information:javac 1.8.0_152-release was used to compile java sources
It seems to build just fine, but when I try to visit my local website I see:
Error 500: (PathToMYServletGoesHere) bad major version at offset=6
I understand that this is error is related to a version mismatch.
Thanks

Gradle build project with specific jdk

I am having Grails project (grails 2.3.11) with multiple Grails plugins. One main Grails project in addition of some user defined Grails plugins and core Java project creates a complete application. So far, these projects are build using Ant builder. Recently upgraded build process to use Gradle.
Problem with gradle process is that some project needs to be build with jdk 1.7 and some to be build with jdk 1.8. In order to fix it, I have set java_home to point to jdk 1.7. Then created gradle.properties file in project directories which needs code to be build with jdk 1.8. Have set property org.gradle.java.home to point to jdk 1.8. Now when I print java_home value from such project I found that it is still picking jdk 1.7 (the one set as environment variable).
Here my gradle compileJava task:
compileJava {
options.encoding = 'UTF-8'
def env = System.getenv("JAVA_HOME")
println "Compile Java: JAVAHOME = ${env}"
dependsOn ':core:updateversiondotjava'
logging.captureStandardOutput LogLevel.DEBUG
}
Projects build with 1.7 are all Grails project and Grails user defined plugins. Reason to build them with 1.7 is to avoid grails version upgrade. Because grails 2.3.x or lower are not supporting Java 1.8.
Can anyone please guide me where I am doing wrong?
I recall Grails 2.3.11 running on Java 8 in my testing. Early versions of Grails 2.3 did not run on Java 8. I understand the official support started with 2.4.x but have you tried Java 8 with your 2.3.11 application?

Error:java: invalid source release: 8 in Intellij. What does it mean?

Im trying to compile some code in I'm using Intellij Ultimate 13.1.4, but I get the following error and I have no idea what it means:
Information:Using javac 1.7.0_55 to compile java sources
Information:java: Errors occurred while compiling module 'Example'
Information:Compilation completed with 1 error and 0 warnings in 3 sec
Information:1 error
Information:0 warnings
Error:java: invalid source release: 8
My guess is that its something related to Java 8 vs Java 7, but I have no idea what specifically. I've tried to Google around for this message, but they either talk about javac or target release, so it doesn't exactly seem to apply.
I had the same issue when "downgrading" a project from Java 8 to Java 6. The reason was that it was not changed at all places in IntelliJ.
In IntelliJ 13.1.4 I had to change Java and SDK version on the following places not to get this error:
File -> Project Structure -> Project Settings
File ->
Project Structure -> Module Settings -> Tab: Sources: Language Level
File -> Project
Structure -> Module Settings -> Tab: Dependencies: Module SDK
File -> Settings -> Compiler -> Java Compiler -> Target bytecode
version
The last bullet was the one that was not updated in my case. Once I changed this, the error disappeared.
Check your pom.xml first (if you have one)
Check your module's JDK dependancy. Make sure that it is 1.8
To do this,go to Project Structure -> SDK's
Add the path to where you have stored 1.8 (jdk1.8.0_45.jdk in my case)
Apply the changes
Now, go to Project Structure ->Modules
Change the Module SDK to 1.8
Apply the changes
Voila! You're done
For Gradle users having this issues, if nothing above helps this is what solved my problem - apply this declarations in your build.gradle files:
targetCompatibility = 1.6 //or 1.7;1.8 and so on
sourceCompatibility = 1.6 //or 1.7;1.8 and so on
Problem solved!
Change in pom.xml 1.6 to 1.8
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
If you are using Gradle as a build tool and you get this error when executing a Gradle task i.e TomcatRun take a look to my other answer to the same question
javac: invalid target release: 1.8
It can be simply overcome by setting on Project Structure. You just need to select the right path for related version of JDK. Select new on dependencies tab, and choose the path. It's done!
Andreas Lundgren's answer worked and I was able to compile and run my app.
However, when I tried to run the project's associated JUnit tests I received the same error. Running
gradle -version
from Windows command prompt showed that gradle was still picking up the incorrect jdk. To fix it I had to set the JAVA_HOME environment variable to point to the correct jdk and restart IntelliJ.
I checked all above said project version, module version, project bytecode version, target bytecode version settings in IntelliJ Idea, but all were the same as I scratched.
I face this error Error:java: invalid source release: 1.8 in IntelliJ Idea 2017.2.6 because I upgraded the dependency version Maven pom file, which(dependency) were supposed to build for JDK 1.8 application and I were building my application on and with maven compiler source and target JDK 1.7.
Hence I again downgrade the dependency version to earlier one in Maven pom, and the error gone after project Rebuild Module 'xyz_project'.
If You Get This ERROR: Error:java: invalid source release: 12
Information:java: Errors occurred while compiling module 'IdeaProjects'
Information:javac 1.8.0_211 was used to compile java sources
Information:Module "IdeaProjects" was fully rebuilt due to project configuration/dependencies changes
Information:7/12/2021 8:21 PM - Build completed with 1 error and 0 warnings in 6 s 323 ms
Error:java: invalid source release: 12
THEN
Select Your Previous Version Project
In My side :
FINISHED
If you Get SOlution of Your IDE then Message Me www.betechnical.tech
or amankushwaha9918#gmaill.com
For Grails users, apply these declarations in your BuildConfig.groovy file:
grails.project.target.level = 1.6 //or 1.7;1.8 and so on
grails.project.source.level = 1.6 //or 1.7;1.8 and so on
You need to click to the project
Open Module Settings and change the path of your JDK, if in the file POM you use jdk 1.8, configure jdk 1.8 with correct path.
I add one more path unmentioned in this answer https://stackoverflow.com/a/26009627/4609353
but very important is Edit Configurations
I tried out all the steps mentioned in here https://stackoverflow.com/a/26009627/2058104, but the 4th point has now changed. You need to go to Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler
In there, as shown in below figure, you need to change the "Target bytecode version". Although, I changed it to 8 (since I needed to downgrade to Java 8), it was giving the same error, over and over. Therefore, try to remove the existing entry (in this table) and add it again. This worked for me.
On the other hand, clean the project and try to run again.
I had the same issue the solution for me was to change my java version in the pom.xml file.
I changed it from 11 to 8.
Lots of good answers.
For those using the (almost) latest version of Intellij, at the time of writing, what can be said, is that the project JDK can be at a higher level, than that of the module.
In fact without it, Maven will have to be rolled back to an older version.
Therefore with the following version of Intellij:
One should not change the project level JDK and therefore be able to leverage the Maven or Gradle settings when building, but when running Maven or running Gradle using a more modern version of the JDK.
If you lower your project level JDK from say JKD8 to JDK6, Maven or Gradle will not run.
Keeping your module at a lower level JDK-wise will enable you to build it to that version, if you use the Module rebuild or build options; using the menu options for rebuilding the project will complain wit "Invalid source release:8...".
As Andreas mentioned all about:
Error:java: invalid source release: 8 in IntelliJ
Error:java: invalid source release: 13 in IntelliJ
Error:java: invalid source release: 14 in IntelliJ...
OR whatever version you are using in Java...
The problem will exist if you do not have it matching inside the below code:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
This 1.8 in my case, must be matching on your device through MAVEN project library, settings, preferences, project setting and SDK.
I was recently facing the same problem.
This Error was showing on my screen after running my project main file.
Error:java: invalid source release: 11
Follow the steps to resolve this error
File->Project Structure -> Project
Click New button under Project SDK: Add the latest SDK and Click OK.
After running You will see error is resolved..
In my case the nuance was that I got a invalid source release 11 (instead of OP's 8). I tried all the solutions above
gradle jvm version , java compilter bytecode version, module language.
I set all the above to java 8 (or 1.8) as that is the library I have on my machine.
The issue was that the build.gradle file had
sourceCompatibility = '11'
Changed this to 8 and it stopped throwing 'compile failed invalid release 11' error
solution reference: github forum

How to make a Grails Maven project use Java 1.7 in GGTS?

I have a Grails 2.3.7 project which should use Java 1.7.
I am using the Spring GGTS IDE as development tool and it is configured to use a Java 1.7 JDK.
I created the project in GGTS and changed the source and target level to 1.7.
Then I generate a maven pom file with the create-pom command.
So far so good. The project is linked to use a JRE System Library of version 1.7.
Then I change the project to be a Maven project in GGTS. What happens now is that in GGTS, the project changes the JRE System Library to become of version 1.6. I can manually switch it back to a java 1.7 library but every time I do a "Maven update project", the 1.6 library is back.
What am I doing wrong?
By removing the jre 1.6 as installed jre from GGTS, the project will use my jre 1.7. But in the list of linked dependencies it is still labeled JRE System Library [Java-SE 1.6] even though it points to my 1.7 instance. This solved my build-issues even though it still looks wrong.

Categories