You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ktor集成jte时java.nio.file.Path不存在of()方法如何解决

问题原因

不存在任何第三方依赖或扩展文件为java.nio.file.Path定义of()扩展方法,该方法是Java 11及以上版本内置的Path类静态方法。报方法不存在的核心原因是项目当前编译/运行环境的Java版本低于11,常见场景如下:

  • 本地使用的JDK版本为Java 8
  • 构建工具(Gradle/Maven)中配置的Java编译目标版本、KotlinjvmTarget参数设置为1.8,即使本地安装了高版本JDK,编译阶段也会拦截高版本API的调用。
解决方法

二选一即可:

  • 升级Java版本至11及以上
    统一将本地JDK、项目构建配置中的Java版本、Kotlin编译目标版本调整为11+,即可正常调用Path.of()。
  • 保持Java 8兼容,替换为低版本支持的API
    Java 11中Path.of()的底层实现就是调用Java 7就已存在的Paths.get(),二者逻辑完全等价,替换步骤:
    1. 新增导入import java.nio.file.Paths
    2. 将报错行替换为val resolver = DirectoryCodeResolver(Paths.get("html"))

修改后可正常运行的完整代码:

package com.example

import io.ktor.server.engine.*
import io.ktor.server.netty.*
import com.example.plugins.*
import gg.jte.TemplateEngine
import gg.jte.resolve.DirectoryCodeResolver
import io.ktor.server.application.*
import io.ktor.server.jte.*
import java.nio.file.Paths

fun main() {
    embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
        install(Jte) {
            val resolver = DirectoryCodeResolver(Paths.get("html"))
            templateEngine = TemplateEngine.create(resolver, gg.jte.ContentType.Html)
        }
        configureRouting()
    }.start(wait = true)
}

内容的提问来源于stack exchange,提问作者Nikitiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:18:17