&引用;sbt服务器已启动。”;从wsl2 ubuntu启动sbt时出错

&引用;sbt服务器已启动。”;从wsl2 ubuntu启动sbt时出错,sbt,wsl-2,Sbt,Wsl 2,我已经在wsl2 ubuntu安装程序中使用sdkman安装了sbt。目前已安装sbt 1.4.2。当我试着从终端启动它时 sbt服务器已启动。创建新服务器?y/n(默认y)如果选择n,则不会发生任何事情。如果我选择y,那么sbt开始。我想做的是能够在没有错误消息的情况下启动sbt。因为这种行为破坏了VisualStudio代码中的金属元素 我检查了sbt源代码,发现下面的方法在sbt/main/src/main/scala/sbt/main.scala private def getSocke

我已经在wsl2 ubuntu安装程序中使用sdkman安装了sbt。目前已安装sbt 1.4.2。当我试着从终端启动它时
sbt服务器已启动。创建新服务器?y/n(默认y)
如果选择n,则不会发生任何事情。如果我选择y,那么sbt开始。我想做的是能够在没有错误消息的情况下启动sbt。因为这种行为破坏了VisualStudio代码中的金属元素

我检查了sbt源代码,发现下面的方法在
sbt/main/src/main/scala/sbt/main.scala

private def getSocketOrExit(
      configuration: xsbti.AppConfiguration
  ): (Option[BootServerSocket], Option[Exit]) =
    try (Some(new BootServerSocket(configuration)) -> None)
    catch {
      case _: ServerAlreadyBootingException
          if System.console != null && !ITerminal.startedByRemoteClient =>
        println("sbt server is already booting. Create a new server? y/n (default y)")
        val exit = ITerminal.get.withRawInput(System.in.read) match {
          case 110 => Some(Exit(1))
          case _   => None
        }
        (None, exit)
      case _: ServerAlreadyBootingException =>
        if (SysProp.forceServerStart) (None, None)
        else (None, Some(Exit(2)))
    }
}
因此,调用
newbootserversocket(配置)
会引发异常。异常源是BootServerSocket.java中的以下方法

static ServerSocket newSocket(final String sock) throws ServerAlreadyBootingException {
    ServerSocket socket = null;
    String name = socketName(sock);
    try {
      if (!isWindows) Files.deleteIfExists(Paths.get(sock));
      socket =
          isWindows
              ? new Win32NamedPipeServerSocket(name, false, Win32SecurityLevel.OWNER_DACL)
              : new UnixDomainServerSocket(name);
      return socket;
    } catch (final IOException e) {
      throw new ServerAlreadyBootingException();
    }
  }

我检查了
isWindows
方法,它返回false。因此,新的UnixDomainServerSocket(名称)部分正在运行。而且它无法创建unix域服务器套接字。我只知道这些。有办法解决这个问题吗?或者这是一个bug?

将我的项目文件移动到wsl2中的目录后,问题就解决了。我的项目文件以前在Windows目录中