从 hello-world 创建 scala 项目时出现 InvalidPathException

Posted

技术标签:

【中文标题】从 hello-world 创建 scala 项目时出现 InvalidPathException【英文标题】:InvalidPathException when creating scala project from hello-world 【发布时间】:2021-06-29 09:55:03 【问题描述】:

按照此过程:https://docs.scala-lang.org/getting-started/sbt-track/getting-started-with-scala-and-sbt-on-the-command-line.html

$ java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

当我使用以下命令时:

sbt new scala/hello-world.g8

我有以下错误:

$ sbt new scala/hello-world.g8 [错误] java.nio.file.InvalidPathException:在索引 118 处尾随 char : ModuleType 版本名称 导出命令 \Coursier\cache\v1 [错误] 对完整日志使用“最后一个”。项目 加载失败:(r)etry、(q)uit、(l)ast 还是 (i)gnore? q

即使使用以下命令也会出现此错误:

$ sbt about [warn] 在 project/build.properties 中没有设置 sbt.version, 基本目录:C:\Users\castelain.florianext\Documents\test\scala [错误] java.nio.file.InvalidPathException: Trailing char at index 118:模块类型版本名称 导出命令 \Coursier\cache\v1 [错误] 对完整日志使用“最后一个”。项目 加载失败:(r)etry、(q)uit、(l)ast 还是 (i)gnore? q

SBT 版本为:sbt script version: 1.3.8

我应该如何解决这个问题?

【问题讨论】:

您的安装似乎存在与 Windows 路径相关的错误。我可以推荐使用 WSL 来安装 Scala 而不是直接在 Windows 上安装吗? sbt new scala/scala-seed.g8 的问题是否仍然存在?如果您使用的是 powershell.exe,它可以与 -NoProfile 一起使用吗? @LuisMiguelMejíaSuárez 我在公司计算机上,无法访问 WSL @MarioGalic 与 scala-seed 以及 -NoProfile 的问题相同。 您要在哪个文件夹下创建sbt 项目?是在/test 还是/scala 下?您能否展示您尝试创建项目的目录下已有的内容? 【参考方案1】:

它抱怨在您的 build.properties 文件中找不到 sbt 版本。

尝试进入您的 test/scala 空文件夹,然后输入:sbt sbtVersion。这会将当前项目设置为您的 scala 文件夹,因此应该创建一个 build.properties 并在其中设置 sbt 版本。

然后您可以再次尝试输入:sbt new scala/hello-world.g8

【讨论】:

使用 sbt 1.3.8,仍然是同样的错误。使用 sbt 1.5.0,不是错误,而是被代理阻止。 哦,是的,我在 sbt 1.4.9 上试过了,不确定这是否也适用于 1.3.8。您是否正确设置了在代理后面使用它所需的所有 java 选项?请参阅 SBT 文档scala-sbt.org/1.x/docs/…

以上是关于从 hello-world 创建 scala 项目时出现 InvalidPathException的主要内容,如果未能解决你的问题,请参考以下文章

由于缺少 Ivy 模块,无法创建 IntelliJ Scala 项目

如何从scala对象中的sbt ProjectPlugin.scala加载对象

如何从 Java 中的 Java 列表创建 scala.collection.immutable.Seq?

在 Scala 中从对象列表创建 HashMap 而无需循环

Docker第一弹:下载运行hello-world程序

BigData创建Scala项目并编写第一个Scala程序