kmh*_*kmh 5 java homebrew scala sbt
我刚刚进行了全新安装。jdk 8(来自 Adoptium.net)和 sbt(使用自制软件)在新镜像的 MacBook 上。无论如何,自制程序使用了 java 18,而 sbt 不起作用。
我按照这里的说明进行操作: https ://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Mac.html
通过该页面上的 Adoptium.net 链接,我找到了唯一适用于 macOS 的 jdk 8。
$ java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Temurin)(build 25.322-b06, mixed mode)
Run Code Online (Sandbox Code Playgroud)
按照 sbt 页面上的说明,我使用了自制程序......
$ brew install sbt
Run Code Online (Sandbox Code Playgroud)
当我检查版本时,我发现一个问题......
$ sbt about
[info] welcome to sbt 1.6.2 (Homebrew Java 18)
[info] loading project definition from /Users/KHinson1/project
[info] set current project to khinson1 (in build file:/Users/KHinson1/)
[info] This is sbt 1.6.2
[info] The current project is ProjectRef(uri("file:/Users/KHinson1/"), "khinson1") 0.1.0-SNAPSHOT
[info] The current project is built against Scala 2.12.15
Run Code Online (Sandbox Code Playgroud)
Homebrew 使用 java 18 安装它?!如何清理它并使用我安装的 java 8?我在笔记本电脑上找不到 java 18。
sbt assembly我立即遇到了尝试用...编译胖罐子的问题
java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release
at java.base/java.lang.System.setSecurityManager(System.java:416)
at sbt.TrapExit$.installManager(TrapExit.scala:52)
at sbt.StandardMain$.runManaged(Main.scala:52)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
at xsbt.boot.Launch$.run(Launch.scala:149)
at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
at xsbt.boot.Launch$.launch(Launch.scala:159)
at xsbt.boot.Launch$.apply(Launch.scala:44)
at xsbt.boot.Launch$.apply(Launch.scala:21)
at xsbt.boot.Boot$.runImpl(Boot.scala:78)
at xsbt.boot.Boot$.run(Boot.scala:73)
at xsbt.boot.Boot$.main(Boot.scala:21)
at xsbt.boot.Boot.main(Boot.scala)
[error] [launcher] error during sbt launcher: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release
Run Code Online (Sandbox Code Playgroud)
我从这样的问题知道这是一个 java 17+ 问题......
sbt 程序集无法创建 jar 并获取 java.lang.UnsupportedOperationException
我过去曾使用 homebrew 来安装 sbt,但老实说,我对 macs 很陌生,当我没有安装 java 18 时,我不明白它是如何使用 java 18 的。
如何让 java 18 完全脱离我的机器(我什至找不到它)并按预期安装 sbt 和 java 8?
谢谢。
编辑
我已经尝试使用 jenv ,如下所述: How can I install openjdk 8 and sbt on mac and have openjdk 8 (not 13) the default one?
我指向我安装的openjdk
$ which java
/usr/bin/java
Run Code Online (Sandbox Code Playgroud)
但当我尝试时
$ jenv add /usr/bin/java
/usr/bin/java is not a valid path to java installation
Run Code Online (Sandbox Code Playgroud)
(编辑我现在已经把一切都搞砸了来尝试 SDKMAN,但我想知道我是否应该直接指出/Library/Java/JavaVirtualMachines/temurin_????)
我尝试使用brew install sbt@0.13which 列出 jdk 8 作为其依赖项,但它不起作用(“找不到命令”)。我想要一个更新的 sbt,但我认为sbt.version=1.3.6在 build.properties 中指定类似的内容会强制 sbt 稍后升级。
我尝试按照 sbt 安装页面上的建议“扩展 zip”,但同样的事情(“找不到命令”),现在重要的是我将其扩展到哪里或如何更新路径。
编辑2
我愿意尝试 sdkman,但此时我已经尝试安装/卸载一些东西,而且我不知道如何从我的机器上删除 java,而且我担心太多东西会把它弄乱相互竞争的尝试。
kmh*_*kmh 11
@Ivan Stanislavciuc 推荐的 SDKMAN 非常棒。它管理 java 环境的方式非常简单。
这是我摆脱错误开始并让事情正常运转的过程。
# uninstall everything
brew uninstall sbt
brew uninstall jenv
cd /Library/Java/JavaVirtualMachines
sudo rm -rf <java installation>
# install sdkman
curl -s "https://get.sdkman.io" | bash
# select java version
# (I chose temurin jdk 8 which is formerly openj9;
# can't find hotspot AdoptOpenJdk anymore, is it gone?)
sdk list java
sdk install java 8.0.322-tem
sdk default java 8.0.322-tem
# install sbt
sdk install sbt
Run Code Online (Sandbox Code Playgroud)
就这么简单。
我以前使用的热点是采用开放的jdk...但我现在没有在任何地方看到可用的热点。我看到SDKMAN说明中sbt安装页面上仍然推荐热点(.hs-adpt是“热点采用开放jdk”吗?)。但我认为 temurin 是 openj9,它也与 sbt 页面上的 Adoptium.net 链接匹配,所以现在我认为这是可以的。
| 归档时间: |
|
| 查看次数: |
4618 次 |
| 最近记录: |