I'm creating simple game with libgdx java library and can't figure out how to change java version of the project.
Problem: It uses 1.7 and I am trying to change it to 1.8
Things I tried( referring to answer ):
Changed sdk version to 1.8 in Project Structure > Project
Changed versions of each module in module section
Tried to modify build.gradle file to run with 1.8 java
buildscript {
repositories { mavenLocal() mavenCentral() gradlePluginPortal() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } google() } dependencies { classpath 'org.wisepersist:gwt-gradle-plugin:1.1.16' classpath 'org.gretty:gretty:3.0.7' } } allprojects { apply plugin: "eclipse" version = '1.0' ext { appName = "Mario" gdxVersion = '1.11.0' roboVMVersion = '2.3.16' box2DLightsVersion = '1.5' ashleyVersion = '1.7.4' aiVersion = '1.8.2' gdxControllersVersion = '2.2.1' } repositories { mavenLocal() mavenCentral() google() gradlePluginPortal() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } maven { url "https://jitpack.io" } } } project(":desktop") { apply plugin: "java-library" // Added apply plugin: "java" sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { implementation project(":core") api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" api "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" } } project(":core") { apply plugin: "java-library" // Added apply plugin: "java" sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { api "com.badlogicgames.gdx:gdx:$gdxVersion" api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" } } project(":html") { apply plugin: "java-library" apply plugin: "gwt" apply plugin: "war" apply plugin: "org.gretty" //Added apply plugin: "java" sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { implementation project(":core") api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" api "com.badlogicgames.gdx:gdx:$gdxVersion:sources" api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources" api "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources" } }
CodePudding user response:
There are 2 ways Intellij builds either internally or with gradle.
There is another setting as
File/Settings
under Build,Execution,Deployment/Compiler/Java Compiler
set the bytecode version here to be 18
using javac
(this is for intellij builder which you might be missing).
and also under
Build,Execution,Deployment/Build Tools/Gradle
you can choose whether you are building and running with gradle
or Intellji.
So there is a distinction, gradle
if you are building and running should use whatever jdk is in your path check with
./gradlew -version
So prob. had it set to build with gradle so the internal options you changed didn't affect the gradle build and your path maybe set to an old java version because you downloaded the new jdk using intellij so it didn't update the path.
btw intellij builds faster but using gradle allows other tasks like copying resources to be defined.
CodePudding user response:
Your approach of changing the sourceCompatibility
to 1.8 is correct, but you did it in the wrong file. There are several build.gradle files in a libgdx project.
In your root directory (where you found the build.gradle file that you mentioned in your question), there is a directory core
. Inside this project there is another build.gradle that includes the sourceCompatibility
.
The file should look like this:
sourceCompatibility = 1.7 // change to 1.8 here to use java-8 features
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.java.srcDirs = [ "src/" ]
eclipse.project.name = appName "-core"