使用rm -rf /Library/Java/JavaVirtualMachines/jdkmajor.minor.macro[_update].jdk卸载mac上的jdk 7后出现问题

时间:2014-11-15 10:06:58

标签: java macos

使用rm -rf /Library/Java/JavaVirtualMachines/jdkmajor.minor.macro [_update] .jdk

卸载mac book pro上的jdk 7后出现问题

我也安装了java 8和Intellij运行良好。但任何运行java -version或mvn的尝试都会因错误而崩溃:

dyld:无法加载插入的库'/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libjsig.dylib'因为找不到图像

[1] 1216 trace trap mvn

同时我可以使用IntelliJ构建所有项目。

我甚至无法运行vim - 我也有同样的错误。 所以,我的问题: 1.卸载JDK的正确方法是什么? 2.在我的情况下我应该怎么做才能恢复系统?

2 个答案:

答案 0 :(得分:0)

查看.bash_profile并尝试查找

export DYLD_INSERT_LIBRARIES=/usr/lib/libSaturnFE.dylib
export DYLD_FORCE_FLAT_NAMESPACE=1

或类似的东西。这些可能会导致您遇到的问题。 尝试将它们评论出来并使用

重新加载bash
exec bash

并查看问题是否仍然存在。

答案 1 :(得分:0)

正如mattias在他的回答中所提到的,你的问题源于你的一个bash启动文件中的命令,它告诉bash在尝试运行任何命令之前加载某些动态库。

对于当前正在运行的终端,使用unset DYLD_INSERT_LIBRARIES只会解决此暂时。因此,您应该首先运行该命令,然后使用.bash_profile.bashrc修改vimnano个文件,永久解决问题。

如果您看到一行

export DYLD_INSERT_LIBRARIES=/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libjsig.dylib

删除此行。如果除了该库之外还插入了任何其他库,只需将此特定库从/Library删除到libsig.dylib,包括以下:(如果它是最后一个,那么在:之前。

退出终端,再次运行并确保问题已解决。

您一直遵循的删除JDK的过程是Oracle建议的正确过程。问题是,一旦在该机器的历史中,您或使用它的任何人将该库添加到DYLD_INSERT_LIBRARIES环境变量中,这就会导致问题。此外,这不影响IntelliJ的原因是它没有运行bash,因此bash命令不会影响它。

如果你想删除任何其他Java版本,你应该像以前一样做,但要事先确保DYLD_INSERT_LIBRARIES中没有任何内容引用/Library/Java/JavaVirtualMachines内的内容。