在 Catalina 上全新安装后尝试使用 sbt 运行 Play Scala 应用程序时出错:"Error loading JNotify watch service: null"

Error when trying to run a Play Scala app with sbt after fresh install on Catalina: "Error loading JNotify watch service: null"

移动到 Catalina 并重新安装所有内容后,无法 运行 我的 Play Scala 应用程序。

在执行 sbt 然后 run 之后,我收到此错误:

[warn] Error loading JNotify watch service: null

一切都是用 brew 从这个 brewfile 安装的(我没有粘贴完整的文件):

tap "AdoptOpenJDK/openjdk"

# Mac apps
cask "adoptopenjdk8"

brew "sbt@0.13"
brew "jenv"

Java版本:

openjdk version "1.8.0_242"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)

sbt: 0.13.18 播放: 2.6.20 os x: 10.15.3 (19D76)

我无法从技术上解释为什么 JNotify 在您的环境中运行不佳,但我可以肯定地说它与 openjdk8 的最新更新有关。

所以我成功重现了adoptopenjdk8版本242的问题,我的解决方法是卸载这个版本的openjdk并强制brew安装以前的版本(232):

brew cask install "https://raw.githubusercontent.com/AdoptOpenJDK/homebrew-openjdk/19d716f1c9ebc325ed23c5df580e0d2b027285a1/Casks/adoptopenjdk8.rb"

我遇到过这个问题。上面的答案对我有帮助。对我来说更简单的方法不是卸载当前版本,而是使用 sdk man 安装 8.0.232.fx-zulu。使此版本成为默认版本。有效。

命令:

sdk 列表java sdk 安装 java 8.0.232.fx-zulu 设为默认值:y

构建并 运行 您的应用。

感谢@rsefuril。我遇到过同样的问题。我采用了 openjdk8 版本 242,安装 openjdk 版本“1.8.0_232”解决了这个问题。 但是我安装了 graalvm。 link 展示了如何将 graalvm 安装到 macos。 从这里下载 graalvm https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-19.3.0

  1. 我下载了https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.0/graalvm-ce-java8-darwin-amd64-19.3.0.tar.gz

  2. 然后解压文件并移动解压后的文件夹

    sudo mv ~/Downloads/graalvm-ce-java8-19.3.0 /Library/Java/JavaVirtualMachines

  3. 将以下行添加到 ~/.zprofile 文件: 导出 JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

  4. 然后检查java版本是否正确:

    java -version

openjdk 版本“1.8.0_232” OpenJDK 运行时环境 (build 1.8.0_232-20191009173705.graal.jdk8u-src-tar-gz-b07) OpenJDK 64 位 GraalVM CE 19.3.0(构建 25.232-b07-jvmci-19.3-b05,混合模式)

就是这样。

PS:您可能需要从系统中删除以前的 Java 1.8。我通过从 /Library/Java/JavaVirtualMachines/

中删除文件夹来删除它