使用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.在我的情况下我应该怎么做才能恢复系统?
答案 0 :(得分:0)
查看.bash_profile并尝试查找
export DYLD_INSERT_LIBRARIES=/usr/lib/libSaturnFE.dylib
export DYLD_FORCE_FLAT_NAMESPACE=1
或类似的东西。这些可能会导致您遇到的问题。 尝试将它们评论出来并使用
重新加载bashexec bash
并查看问题是否仍然存在。
答案 1 :(得分:0)
正如mattias在他的回答中所提到的,你的问题源于你的一个bash启动文件中的命令,它告诉bash在尝试运行任何命令之前加载某些动态库。
对于当前正在运行的终端,使用unset DYLD_INSERT_LIBRARIES
只会解决此暂时。因此,您应该首先运行该命令,然后使用.bash_profile
或.bashrc
修改vim
和nano
个文件,永久解决问题。
如果您看到一行
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
内的内容。