我拥有运行良好的 Apache NetBeans 11.1 和 JDK 11。
然后 NetBeans 升级到 11.3,由于某种原因它没有看到 JDK,所以我下载了 JDK 14 并将其添加到 NetBeans 平台。一切正常。
Ubuntu 升级到 19.10。
现在,无论我单击多少次,Apache Netbeans 都无法通过收藏夹图标工作。
我删除了 NB for Ubuntu 软件,然后从终端重新安装了它,但是它因从存档中获取 jdk 时出现某些错误而停止了,因此我从 snap 中安装了它。
我必须打开终端并运行
netbeans --jdkhome /home/username/myjavafolder/jdk-14.0.1
它运行良好,并且Tools\Java Platforms
显示 JDK 14 是默认平台。但我不想每次运行 NetBeans 时都打开终端。
在 Ubuntu 软件中,它显示 Apache NetBeans 已安装,但是当我右键单击收藏夹图标并单击“显示详细信息”时,Ubuntu 软件显示“无法找到 netbeans_netbeans.desktop”
我将其改为netbeans.conf
指向上面的jdkhome。
我也改变了JAVA_HOME
变量(使用JAVA_HOME=$"/home/username/myjavafolder/jdk-14.0.1"
,但重启后,它由于某种原因被重置(当我echo $JAVA_HOME
得到一个空行时)
在终端中使用which
显示 netbeans 位于snap/bin/netbeans
,但在此文件属性中它显示其链接目标是/usr/bin/snap
。这有某种关联吗?
谢谢。
答案1
我认为您的问题中有几件事不一定相关。
1. Java
您将 JDK 设置在了一个不寻常的文件夹中,我敢打赌 Ubuntu 对此一无所知。如果您输入命令which java
和,您会得到什么which javac
?
通常,您可以使用该命令更新默认 JDK sudo update-alternative --config java
(然后使用 javac 也一样)。然后终端将显示它找到的所有 JVM/JDK,当前使用的 JVM/JDK 前面有一个星号。您可以输入要用来代替当前 JDK 的 JVM/JDK 的编号。
这可能已经解决了您的问题。如果确实如此,那么完美,不要再进一步检查了,这是唯一缺少的东西。
附注:如果您想永久设置 JAVA_HOME 变量,则必须编辑 ~/.bashrc 文件,并在该文件末尾添加:
export JAVA_HOME=/home/username/myjavafolder/jdk-14.0.1
但我不确定这是否导致了您的问题,因此这更多只是信息而已……
请注意,如果您希望仅为 NetBeans 使用 JDK 14 并且为您的系统使用另一个 JDK,那么您应该保持 update-alternatives 命令指向所需的系统 JDK 并在 netbeans.conf 中指定您的 NetBeans JDK (正如您实际上似乎已经完成的那样)。
2. NetBeans 启动器
从您所说的情况来看,NetBeans 图标不再启动 NetBeans。也许您可以使用图形菜单编辑器来检查单击此图标时实际执行的命令?您还应该检查当前命令正在执行什么操作、它尝试执行哪个 NetBeans 二进制文件,并检查此二进制文件是否确实存在。
我怀疑由于连续的 NetBeans 位置或安装不同,启动器无法正确更新,从而造成一些混乱。
您可以编辑命令,因此基本上复制/粘贴您从终端成功使用的命令。如果这样做,您应该能够从其图标再次启动 NetBeans,就像从终端启动一样。但我宁愿建议您修复 JDK 位置,因为这听起来是一种解决问题的“更干净”的方法。
3. NetBeans 本身
最后,我想知道您的 NetBeans 在哪里,或者您在会话中安装了多少个 NetBeans。您是如何安装 NetBeans 的?您提到您编辑了 netbeans.conf 文件。它位于哪里?我之所以问这个问题,是因为看起来您是通过 snap 安装了 NetBeans,但如果这是正确的,那么您应该无法编辑 .conf 文件。
如果您无法通过上述任何步骤获得可运行的 NetBeans,我建议您卸载 snap 包。图标应该已经消失。您不应该which netbeans
在终端中获得任何结果。
如果您在步骤 2 中发现了另一个 NetBeans 安装,您也应该将其删除。如果这样没问题,并且您已经修复了 JDK 路径,请尝试重新安装 NetBeans。
你现在应该完成了!
which
我希望您能按照这些步骤让 NetBeans 正常工作。如果您不能,请提供我在回答中提到的和命令的输出update-alternatives
,我们会进一步考虑。