scala - 由于 InvalidPath 异常,无法使用 'sbt console' 启动 Scala REPL

标签 scala sbt scala-repl

我在 Windows 10 操作系统上工作,并从 scala-lang 下载页面的 .msi 安装程序安装了 sbt 1.4.5。现在,当我在命令提示符中键入 sbtsbt about 时,它工作正常,但只要我键入 sbt console,我就会得到以下信息错误信息:

C:\Users\anka2\Scala_Samples\Variables>sbt console
[warn] Neither build.sbt nor a 'project' directory in the current directory: "C:\Users\anka2\Scala_Samples\Variables"
c) continue
q) quit
?c
[warn] No sbt.version set in project/build.properties, base directory: C:\Users\anka2\Scala_Samples\Variables
[info] welcome to sbt 1.4.5 (Oracle Corporation Java 1.8.0_271)
[info] loading global plugins from C:\Users\anka2\.sbt\1.0\plugins
[info] set current project to variables (in build file:/C:/Users/anka2/Scala_Samples/Variables/)
[error] java.nio.file.InvalidPathException: Illegal char <"> at index 0: "C:\Windows\System32
[error]         at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
[error]         at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
[error]         at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
[error]         at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
[error]         at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
[error]         at java.io.File.toPath(File.java:2234)
[error]         at sbt.internal.inc.classpath.ClasspathUtil$.$anonfun$javaLibraryPaths$1(ClasspathUtilities.scala:62)
[error]         at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:285)
[error]         at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
[error]         at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
[error]         at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
[error]         at scala.collection.TraversableLike.map(TraversableLike.scala:285)
[error]         at scala.collection.TraversableLike.map$(TraversableLike.scala:278)
[error]         at scala.collection.AbstractTraversable.map(Traversable.scala:108)
[error]         at sbt.internal.inc.classpath.ClasspathUtil$.javaLibraryPaths(ClasspathUtilities.scala:62)
[error]         at sbt.internal.inc.classpath.ClasspathUtil$$anon$2.<init>(ClasspathUtilities.scala:50)
[error]         at sbt.internal.inc.classpath.ClasspathUtil$.toLoader(ClasspathUtilities.scala:48)
[error]         at sbt.internal.inc.classpath.ClasspathUtil$.makeLoader(ClasspathUtilities.scala:115)
[error]         at sbt.internal.inc.classpath.ClasspathUtil$.makeLoader(ClasspathUtilities.scala:103)
[error]         at sbt.Defaults$.$anonfun$consoleTask$1(Defaults.scala:2043)
[error]         at sbt.Defaults$.$anonfun$consoleTask$1$adapted(Defaults.scala:2037)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error]         at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error]         at sbt.Execute.work(Execute.scala:291)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)
[error] (Compile / console) java.nio.file.InvalidPathException: Illegal char <"> at index 0: "C:\Windows\System32
[error] Total time: 0 s, completed Jan 17, 2021 11:25:34 AM

我尝试通过运行 sbt --verbose 来识别格式错误,这就是我得到的结果:-

C:\Users\anka2>sbt --verbose
# Executing command line:
"C:\Program Files\Java\jdk1.8.0_271\bin\java.exe"
-Dfile.encoding=UTF-8
-Xms1024m
-Xmx1024m
-Xss4M
-XX:ReservedCodeCacheSize=128m
-cp
"C:\Program Files (x86)\sbt\\bin\sbt-launch.jar"
 xsbt.boot.Boot

[info] welcome to sbt 1.4.5 (Oracle Corporation Java 1.8.0_271)
[info] loading global plugins from C:\Users\anka2\.sbt\1.0\plugins
[info] loading project definition from C:\Users\anka2\project
[info] set current project to anka2 (in build file:/C:/Users/anka2/)
[info] sbt server started at local:sbt-server-ff142d10856e0dc0f951
[info] started sbt server

但在此之后,只要我输入 console,我就会收到相同的 InvalidPath 异常消息。

这可能是初级的,但我绝对无法理解我哪里出错了或如何解决这个问题。

最佳答案

它失败了,因为你正在从一个不是 sbt 项目的文件夹中运行这个命令。正如您在错误中看到的那样:

Neither build.sbt nor a 'project' directory in the current directory: "C:\Users\anka2\Scala_Samples\Variables"

运行时请在目录下添加:

  1. project\build.properties 文件内容:

    sbt.version = 1.4.5
    
  2. build.sbt 文件内容:

    name := "test213"
    version := "0.1"
    scalaVersion := "2.13.4"
    

然后尝试重新运行此命令。

关于scala - 由于 InvalidPath 异常,无法使用 'sbt console' 启动 Scala REPL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65763969/

相关文章:

Scala 和 VS Code 中的集成终端

斯卡拉 : Never ending stream

java - 在 scala 类中使用 java list 的奇怪行为

scala - 将 DataFrame 保存为 cvs 时 Spark 2.0 DataSourceRegister 配置错误

sbt - 非法状态异常 : impossible to get artifacts when data has not been loaded for Guava 12. 0?

scala - sbt 程序集合并问题 [去重 : different file contents found in the following]

scala 类型不匹配错误,需要 GenTraversableOnce[?]

java - Playframework - 分包 Controller 和路由问题

java - 如何在scala repl中加载和使用 native 库?

scala - 如何使用 `asRight` 创建带有猫的 Either 实例