如何使用SDKMAN更改java版本而不需要先关闭Intellij IDEA?

问题描述 投票:0回答:1

我在我的笔记本电脑上安装了 sdkman。我从事两个独立的项目,其中 P1 使用 Java 11,P2 使用 Java 8。如果我正在处理 P1,但出现问题并且需要处理 P2,我将使用我的 ide (IntelliJ IDEA) 打开 P2。由于 P2 使用 Java 8,我将打开一个终端并使用 sdkman 将我的电脑更改为使用 Java 8。但是,当我尝试执行此操作时,我收到 2 条错误消息:

user1@ bin $ sdk default java 8.322.06.2-amzn

rm: cannot remove '/c/Users/user1/.sdkman/candidates/java/current/lib/jrt-fs.jar': 
Device or resource busy

ln: failed to create symbolic link 
'/c/Users/user1/.sdkman/candidates/java/current/8.322.06.2-amzn': No such file or 
directory

当我查看“current/”目录时,它并没有填充 Java 8 JDK,而是看起来“lib/jrt-fs.jar”(之前的 Java 11 JDK 内容留下的)尚未被删除,实际上仍然驻留在“current/”中。如果我尝试通过文件系统删除“lib/”,它会告诉我该文件夹无法删除,因为有程序正在使用它。我认为有一个文件句柄没有被ide释放,因为当我关闭ide时,我可以删除该文件夹,并且我可以使用sdkman再次填充“current/”文件夹。

问题:有没有办法在不关闭ide的情况下释放“current/”文件夹中内容的ide文件句柄?

警告:当我在谷歌上搜索“设备或资源繁忙”时,我看到提到我可以以某种方式使用 umount 命令,但我不确定这是否是一个错误的线索,或者我是否只需要更多信息:这里

java intellij-idea filehandle sdkman
1个回答
0
投票

要在 IntelliJ 中运行项目,您可以通过在 IntelliJ 中进行配置来指定要使用的 JDK。 目前SDKMAN设置的默认JDK!仅适用于在 IntelliJ 之外自行执行的 Java 应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.