在许多最近的情况下,但现在我尝试使用安装程序,该安装程序会引发错误并说出类似“未安装Java”的内容,即使JAVA_HOME设置为AdoptOpenJDK安装程序针对Windows 10 64x安装的JDK。我找不到修复它的方法,无论如何,今天我尝试安装Netbeans 8.2,它显示了此错误,但是我发现您可以将参数传递给安装程序(--javahome),然后错误消息从“ JDK”更改为找不到(在您的计算机中)”到“找不到JRE(在给定位置)”,这甚至很奇怪。
然后我将JRE作为javahome传递了出来,它工作了,这让我感到惊讶,在安装程序中,您可以选择netbeans应该使用的jdk,它可以正确显示已安装的jdk。如此...为什么会这样?

编辑:
JAVA_HOME是“ C:\ Program Files \ AdoptOpenJDK \ jdk-13.0.2.8-hotspot \”
在安装期间我没有更改它

--javahome参数为“ C:\ Program Files \ AdoptOpenJDK \ jdk8u242-b08-jre”
我在安装它后意识到它不在Path中

但是我100%确保“ C:\ Program Files \ AdoptOpenJDK \ jdk-13.0.2.8-hotspot \”位于Path中,这很奇怪,因为据推测,根据我阅读的内容,AdoptOpenJDK安装程序会在JRE内部安装JDK ?还是至少不应该JDK是JRE的超集?

编辑2:
由于这个答案,我将JDK路径保留为JAVA_HOME。
Should JAVA_HOME point to JDK or JRE?

最佳答案

您的实际问题尚不清楚,但这看起来像X-Y问题。真正的问题是您在安装NetBeans 8.2时遇到了问题(对吗?),但是您错误地得出结论,认为原因与您的JAVA_HOME设置有关。不是。

首先,from the NetBeans 8.2 download page,请注意“安装和运行Java SE,Java EE和所有NetBeans捆绑包需要JDK8。NetBeans8.2不能在JDK 9或更高版本上运行”。因此,至少有一部分问题是您试图将JDK 13与NetBeans 8.2一起使用。那只是行不通的。

其次,您无需设置环境变量JAVA_HOME即可使NetBeans 8.2正常工作。我只是故意破坏了JAVA_HOME的设置,然后NetBeans 8.2重新启动并可以正常工作。这是一件好事,因为您可能出于其他与NetBeans完全无关的其他原因而合法地希望将JAVA_HOME设置为任意JDK,并且如果它依赖于JAVA_HOME,则这样做可能会破坏NetBeans 8.2。

第三,NetBeans也不关心您的PATH设置。 (顺便说一句,NetBeans忽略JDK_HOME和PATH意味着您可以安装不同版本的NetBeans,每个版本使用不同的JDK,并安全地同时运行它们。)

要明确指定NetBeans 8.2安装应使用的JDK:


找到文件netbeans.conf。它是一个文本文件,位于NetBeans 8.2安装下的etc目录中。
在任何文本编辑器中打开该文件,然后找到包含文本netbeans_jdkhome的行。
如果该行以#开头(表示带注释的行),请删除该行,然后设置netbeans_jdkhome来指定JDK 8安装的路径。在我的Windows 10计算机上,该行如下所示:netbeans_jdkhome="C:\Java\jdk1.8.0_221"
确保只有一条未注释的行将值设置为netbeans_jdkhome(将其保存到JDK 8安装目录中),然后将所做的更改保存到netbeans.conf并(重新)启动NetBeans 8.2。


希望这是解决问题所需要做的一切,但是如果没有,请更新您的问题以阐明需要解决的确切问题。

08-18 10:15
查看更多