Home > Mobile >  How to change Java version of libgdx project?
How to change Java version of libgdx project?

Time:05-29

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 ):

  1. Changed sdk version to 1.8 in Project Structure > Project

  2. Changed versions of each module in module section

  3. 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"
  • Related