diff --git a/lib/kotlin/build.gradle.kts b/lib/kotlin/build.gradle.kts
index 1f7711a..90b9e80 100644
--- a/lib/kotlin/build.gradle.kts
+++ b/lib/kotlin/build.gradle.kts
@@ -41,8 +41,10 @@
 }
 
 tasks {
-    ktfmt {
-        kotlinLangStyle()
+    if (JavaVersion.current().isJava11Compatible) {
+        ktfmt {
+            kotlinLangStyle()
+        }
     }
 
     test {
diff --git a/lib/kotlin/cross-test-client/build.gradle.kts b/lib/kotlin/cross-test-client/build.gradle.kts
index deda467..ff48eed 100644
--- a/lib/kotlin/cross-test-client/build.gradle.kts
+++ b/lib/kotlin/cross-test-client/build.gradle.kts
@@ -19,9 +19,9 @@
 
 plugins {
     kotlin("jvm")
-    id("com.ncorti.ktfmt.gradle")
     java
     application
+    id("com.ncorti.ktfmt.gradle")
 }
 
 repositories {
@@ -62,8 +62,10 @@
         mainClass.set("org.apache.thrift.test.TestClientKt")
     }
 
-    ktfmt {
-        kotlinLangStyle()
+    if (JavaVersion.current().isJava11Compatible) {
+        ktfmt {
+            kotlinLangStyle()
+        }
     }
 
     task<Exec>("compileThrift") {
diff --git a/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt b/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt
index 28f9ffd..39500df 100644
--- a/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt
+++ b/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt
@@ -77,30 +77,27 @@
 }
 
 class TestClient : CliktCommand() {
-    private val host: String by option(help = "The cross test host to connect to")
-        .default("localhost")
+    private val host: String by
+        option(help = "The cross test host to connect to").default("localhost")
     private val port: Int by option(help = "The cross test port to connect to").int().default(9090)
-    private val numTests: Int by option("--testloops", "--n", help = "Number of runs in this test")
-        .int()
-        .default(1)
-    private val protocolType: ProtocolType by option("--protocol", help = "Protocol type")
-        .enum<ProtocolType> { it.key }
-        .default(ProtocolType.Binary)
-    private val transportType: TransportType by option("--transport", help = "Transport type")
-        .enum<TransportType> { it.key }
-        .default(TransportType.Buffered)
-    private val useHttpClient: Boolean by option("--client", help = "Use http client")
-        .flag(default = false)
-    private val useSSL: Boolean by option("--ssl", help = "Use SSL for encrypted transport")
-        .flag(default = false)
-    private val useZlib: Boolean by option(
-            "--zlib",
-            help = "Use zlib wrapper for compressed transport"
-        )
-        .flag(default = false)
-    private val socketTimeout: Int by option("--timeout", help = "Socket timeout")
-        .int()
-        .default(1000)
+    private val numTests: Int by
+        option("--testloops", "--n", help = "Number of runs in this test").int().default(1)
+    private val protocolType: ProtocolType by
+        option("--protocol", help = "Protocol type")
+            .enum<ProtocolType> { it.key }
+            .default(ProtocolType.Binary)
+    private val transportType: TransportType by
+        option("--transport", help = "Transport type")
+            .enum<TransportType> { it.key }
+            .default(TransportType.Buffered)
+    private val useHttpClient: Boolean by
+        option("--client", help = "Use http client").flag(default = false)
+    private val useSSL: Boolean by
+        option("--ssl", help = "Use SSL for encrypted transport").flag(default = false)
+    private val useZlib: Boolean by
+        option("--zlib", help = "Use zlib wrapper for compressed transport").flag(default = false)
+    private val socketTimeout: Int by
+        option("--timeout", help = "Socket timeout").int().default(1000)
 
     private fun createProtocol(transport: TTransport): TProtocol =
         when (protocolType) {
diff --git a/lib/kotlin/cross-test-server/build.gradle.kts b/lib/kotlin/cross-test-server/build.gradle.kts
index 508b29d..eda1ebd 100644
--- a/lib/kotlin/cross-test-server/build.gradle.kts
+++ b/lib/kotlin/cross-test-server/build.gradle.kts
@@ -19,9 +19,9 @@
 
 plugins {
     kotlin("jvm")
-    id("com.ncorti.ktfmt.gradle")
     java
     application
+    id("com.ncorti.ktfmt.gradle")
 }
 
 repositories {
@@ -60,8 +60,10 @@
         mainClass.set("org.apache.thrift.test.TestServerKt")
     }
 
-    ktfmt {
-        kotlinLangStyle()
+    if (JavaVersion.current().isJava11Compatible) {
+        ktfmt {
+            kotlinLangStyle()
+        }
     }
 
     task<Exec>("compileThrift") {
diff --git a/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt b/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt
index d9c0c86..566e53d 100644
--- a/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt
+++ b/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt
@@ -167,17 +167,18 @@
 
 class TestServerCommand : CliktCommand() {
     private val port: Int by option(help = "The cross test port to connect to").int().default(9090)
-    private val protocolType: ProtocolType by option("--protocol", help = "Protocol type")
-        .enum<ProtocolType> { it.key }
-        .default(ProtocolType.Binary)
-    private val transportType: TransportType by option("--transport", help = "Transport type")
-        .enum<TransportType> { it.key }
-        .default(TransportType.Buffered)
-    private val serverType: ServerType by option("--server-type")
-        .enum<ServerType> { it.key }
-        .default(ServerType.NonBlocking)
-    private val useSSL: Boolean by option("--ssl", help = "Use SSL for encrypted transport")
-        .flag(default = false)
+    private val protocolType: ProtocolType by
+        option("--protocol", help = "Protocol type")
+            .enum<ProtocolType> { it.key }
+            .default(ProtocolType.Binary)
+    private val transportType: TransportType by
+        option("--transport", help = "Transport type")
+            .enum<TransportType> { it.key }
+            .default(TransportType.Buffered)
+    private val serverType: ServerType by
+        option("--server-type").enum<ServerType> { it.key }.default(ServerType.NonBlocking)
+    private val useSSL: Boolean by
+        option("--ssl", help = "Use SSL for encrypted transport").flag(default = false)
     private val stringLimit: Long by option("--string-limit").long().default(-1)
     private val containerLimit: Long by option("--container-limit").long().default(-1)
 
diff --git a/lib/kotlin/settings.gradle.kts b/lib/kotlin/settings.gradle.kts
index a6bdbbc..2eff402 100644
--- a/lib/kotlin/settings.gradle.kts
+++ b/lib/kotlin/settings.gradle.kts
@@ -18,8 +18,15 @@
  */
 pluginManagement {
     plugins {
-        kotlin("jvm") version "1.5.31"
-        id("com.ncorti.ktfmt.gradle") version "0.4.0"
+        kotlin("jvm") version "1.6.10"
+        // per https://github.com/cortinico/ktfmt-gradle/tags the latest version requires Gradle 7.4 which in turn
+        // requires Java 11, failing the xenial build which is still on Java 8. Here we both configure the plugin
+        // but with different version, and only enabling ktfmt configure for Java 11+, to make the legacy build happy
+        if (JavaVersion.current().isJava11Compatible) {
+            id("com.ncorti.ktfmt.gradle") version "0.8.0"
+        } else {
+            id("com.ncorti.ktfmt.gradle") version "0.5.0"
+        }
     }
 }
 
