简介
我最近安装了新的Mac OS版本(Big Sur),和许多其他用户一样,发现JVM兼容性存在问题。
在浏览了SO和其他网页上的大量帖子后,我发现了一些信息,关于在试图匹配JDK版本时可能是JAVA_HOME
变量的问题。但不幸的是,这不是我的问题(我仔细检查了路径,它是正确的)。对于那些可能想仔细检查:我的jdk版本是adtopenjdk-8
和$JAVA_HOME
变量内容:
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java
无论JDK版本是什么,这个问题都存在,我已经尝试了版本8、11和15,所有版本都没有任何效果。
解决问题的方法
经过大量的研究,我发现在修改那些使用JVM的程序(Netbeans、Eclipse Scala IDE和VirtualBox)中的配置文件时,每一个都有一个完整的、部分的和不存在的解决方案。
- 首先是NetBeans 8.2:**
我在/Applications/NetBeans/NetBeans\ 8.2.app/Contents/Resources/NetBeans/etc/
目录下找到了netbeans.conf
文件,在取消注解该行并添加到jdk的路径后:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home"
我手动指示了Netbeans应该查找的JVM的路径。这工作得很好!
- 其次,Eclipse IDE的Scala版本:**
在这种情况下,通过配置文件手动指示jdk路径并不完全起作用。首先,程序甚至没有启动,而是出现了一个错误对话框,表明没有找到JVM。在谷歌搜索后,我发现编辑/Applications/eclipse.app/Contents/Info.plist
文件,可以告诉Eclipse使用什么JDK,而不是使用默认的JDK,并且考虑到Eclipse IDE for Scala
这个版本(4.2)只支持JDK-8,修改后的结果行如下:
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java</string>
在包含上一行代码后,IDE运行,但令我惊讶的是,在适当地加载编辑器和GUI后,出现了以下内容:
对于熟悉此IDE的用户,运行/调试图标应该显示在顶部 边距,但令人惊讶的是,它们已经消失了!阅读Eclipse错误日志文件,我发现 以下堆栈跟踪错误:
!ENTRY org.eclipse.ui 4 0 2020-11-22 23:25:43.969
!MESSAGE Exceptions during shutdown
!STACK 0
java.lang.NullPointerException
at org.eclipse.swt.widgets.Control.internal_new_GC(Control.java:2176)
at org.eclipse.swt.graphics.GC.<init>(GC.java:174)
at org.eclipse.swt.graphics.GC.<init>(GC.java:135)
at org.eclipse.jface.dialogs.Dialog.shortenText(Dialog.java:357)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.setMessage(ProgressMonitorDialog.java:624)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.open(ProgressMonitorDialog.java:650)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.aboutToRun(ProgressMonitorDialog.java:555)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:480)
at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:237)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.disconnectFromWorkspace(IDEWorkbenchAdvi...
在这一点上,我必须承认我完全迷失了方向。我不知道该怎么办。
- 第三次(也是我最大的失败),VirtualBox:**
在这种情况下,我遇到了同样的问题,虽然应用程序成功执行,但如果我尝试启动计算机,则会出现以下错误对话框:
1条答案
按热度按时间nlejzf6q1#
scala IDE可以在eclipse“continuous build 2020-06”上运行,而且看起来没有Oxygen在大苏尔操作系统更新中出现的问题。
注意:不要尝试在scala IDE中使用比“continuous build 2020-06”更新的版本,因为它不兼容。事实上,使用2020-06版本时,会有一些与scala IDE不兼容的地方,而在Oxygen上运行时,你不会看到这些地方(弹出警告,自动完成和不起作用的换行符)。尽管如此,它仍然非常有用。
希望Typesafe的人能够花一些时间来移植IDE以使用最新的eclipse。