在 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
然后解压文件并移动解压后的文件夹
sudo mv ~/Downloads/graalvm-ce-java8-19.3.0 /Library/Java/JavaVirtualMachines
将以下行添加到 ~/.zprofile 文件:
导出 JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
然后检查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/
中删除文件夹来删除它
移动到 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
然后解压文件并移动解压后的文件夹
sudo mv ~/Downloads/graalvm-ce-java8-19.3.0 /Library/Java/JavaVirtualMachines
将以下行添加到 ~/.zprofile 文件: 导出 JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
然后检查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/
中删除文件夹来删除它