diff --git a/build.gradle b/build.gradle
index 8569c86..9da30ad 100644
--- a/build.gradle
+++ b/build.gradle
@@ -30,6 +30,10 @@
   id 'com.github.node-gradle.node' version '7.0.1' apply false
 }
 
+// Declare default Java versions for the entire project and for SolrJ separately
+rootProject.ext.minJavaVersionDefault = JavaVersion.VERSION_11
+rootProject.ext.minJavaVersionSolrJ = JavaVersion.VERSION_11
+
 apply from: file('gradle/globals.gradle')
 
 // General metadata.
@@ -85,8 +89,6 @@
   buildTime = DateTimeFormatter.ofPattern("HH:mm:ss").format(tstamp)
   buildYear = DateTimeFormatter.ofPattern("yyyy").format(tstamp)
 
-  minJavaVersion = JavaVersion.VERSION_11
-
   // Allow definiting external tool locations using system props.
   externalTool = { name ->
     def resolved = propertyOrDefault("${name}.exe", name as String)
diff --git a/gradle/globals.gradle b/gradle/globals.gradle
index 48131b3..30eaa08 100644
--- a/gradle/globals.gradle
+++ b/gradle/globals.gradle
@@ -169,5 +169,9 @@
     // "CI": Github (https://docs.github.com/en/actions/learn-github-actions/environment-variables)
     // anything starting with "JENKINS_" or "HUDSON_": Jenkins/Hudson (https://jenkins.thetaphi.de/env-vars.html/)
     isCIBuild = System.getenv().keySet().any { it ==~ /(?i)((JENKINS|HUDSON)(_\w+)?|CI)/ }
+
+    // Assign different java version for client-side modules 'api' and 'solrj*'
+    var isSolrJ = project.name.matches("^(solrj.*|api)\$")
+    minJavaVersion = isSolrJ ? rootProject.minJavaVersionSolrJ : rootProject.minJavaVersionDefault
   }
 }
diff --git a/gradle/ide/eclipse.gradle b/gradle/ide/eclipse.gradle
index 1c1b626..a088c8b 100644
--- a/gradle/ide/eclipse.gradle
+++ b/gradle/ide/eclipse.gradle
@@ -69,9 +69,9 @@
     }
 
     jdt {
-      sourceCompatibility = rootProject.minJavaVersion
-      targetCompatibility = rootProject.minJavaVersion
-      javaRuntimeName = "JavaSE-${rootProject.minJavaVersion}"
+      sourceCompatibility = rootProject.minJavaVersionDefault
+      targetCompatibility = rootProject.minJavaVersionDefault
+      javaRuntimeName = "JavaSE-${rootProject.minJavaVersionDefault}"
     }
   }
 
diff --git a/gradle/java/javac.gradle b/gradle/java/javac.gradle
index 9812ed5..53320cc 100644
--- a/gradle/java/javac.gradle
+++ b/gradle/java/javac.gradle
@@ -19,12 +19,12 @@
 
 allprojects {
   plugins.withType(JavaPlugin) {
-    sourceCompatibility = rootProject.minJavaVersion
-    targetCompatibility = rootProject.minJavaVersion
+    sourceCompatibility = project.minJavaVersion
+    targetCompatibility = project.minJavaVersion
 
     // Use 'release' flag instead of 'source' and 'target'
     tasks.withType(JavaCompile) {
-      options.compilerArgs += ["--release", rootProject.minJavaVersion.toString()]
+      options.compilerArgs += ["--release", project.minJavaVersion.toString()]
     }
 
     // Configure warnings.
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index ce9cd2c..107f7a9 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -86,6 +86,8 @@
 
 * SOLR-14410: Switch from SysV init script to systemd service definition (Marius Ghita via janhoy)
 
+* SOLR-17205: De-couple SolrJ required Java version from server Java version (janhoy)
+
 ==================  9.6.0 ==================
 New Features
 ---------------------
