java - 使用nailgun时Scala编译服务器错误

标签 java scala intellij-idea nailgun

我目前正在使用 IntelliJ Idea 13.0 Build 132.197,并且在构建任何 Scala 项目时经常遇到这个问题

6:08:42 PM Scala compile server: java.net.BindException: Address already in use: JVM_Bind
    at java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
    at java.net.ServerSocket.bind(ServerSocket.java:376)
    at java.net.ServerSocket.(ServerSocket.java:237)
    at com.martiansoftware.nailgun.NGServer.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:724)

当我只打开 1 个项目并且没有在任何其他进程中使用 nailgun 时会发生此错误。关闭并重新打开项目不起作用。从 IntelliJ 退出并重新启动后,我仍然收到相同的错误。

在 Windows 任务管理器中,我看到一个 java.exe 进程,其中包含以下详细信息:

E:\Dev\Java\bin\java -cp "E:/Dev/Java/lib/tools.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 132.197/lib/jps-server.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 132.197/lib/trove4j.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 132.197/lib/util.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/scala-library.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/scala-plugin-runners.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/nailgun.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/sbt-interface.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/incremental-compiler.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/jline.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/scala-jps-plugin.jar" -Xmx1024m -server -Xss1m -XX:MaxPermSize=256m org.jetbrains.plugins.scala.nailgun.NailgunRunner 3200

这是因为 Nailgun 设置有问题吗?

最佳答案

以下是这种情况的手动解决方案:

  • 找到监听 3200 端口的进程(PID)(在设置>scala>tcp 端口查看)
    • 在 Mac(Linux) 上:lsof -i :3200
  • 检查该过程
    • 在 Mac(Linux) 上:ps axu |grep <PID>
    • 就我而言,它以 org.jetbrains.plugins.scala.nailgun.NailgunRunner 3200 结尾
  • 杀死进程,它是旧进程,IDEA 将启动新进程
    • 在 Mac(Linux) 上:kill -9 <PID>

关于java - 使用nailgun时Scala编译服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18872062/

相关文章:

面向 IntelliJ 开发人员的 Eclipse 速成类(class)

java - 如何在 Intellij 中为 Java 格式化类似 C# 样式的代码?

java - .NET中有类似Orekit的库吗?

java - 生成给定字符串的有序排列

scala - 在 Scala 中通过委托(delegate)装饰(如 kotlin)

scala - 如何访问--files指定的文件?

java - 使用 Spring 构建 RESTful Web 服务时如何在 Web 浏览器中显示更改?

java - 安卓工作室 : debug application on device

xml - 如何在 Scala 中计算 XML 文字标记名称?

android-studio - Android Studio 3.2 Canary 14 Github 集成