Netbeans在全新安装的Ubuntu 18.04上无法启动。

在安装了全新的Ubuntu 18.04之后,再安装了NetBeans之后,NetBeans无法启动。NetBeans是使用以下方式进行安装的:
sudo apt install netbeans

一些其他的Java程序(至少是Eclipse)也无法启动。
当从命令行启动NetBeans时,JVM会打印以下警告:
➜  ~ netbeans
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.netbeans.ProxyURLStreamHandlerFactory (file:/usr/share/netbeans/platform18/lib/boot.jar) to field java.net.URL.handler
WARNING: Please consider reporting this to the maintainers of org.netbeans.ProxyURLStreamHandlerFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
➜  ~ 

2我遇到了同样的问题,通过按照这个链接中的步骤解决了它 https://www.linuxhelp.com/how-to-install-netbeans-ide-8-2-in-ubuntu-18-04/ - JDKabangu
1我已经提交了一个关于这个问题的错误报告:https://bugs.launchpad.net/ubuntu/+source/netbeans/+bug/1813039。 - Line
现在它可以正常工作了。只需要进行一次升级即可。 - neoexpert
7个回答

Ubuntu的软件仓库仍然有Netbeans 8.1,但是没有JDK 11。所以我从Netbeans官网下载了Netbeans 8.2。
下载完Netbeans 8.2后,请按照以下步骤操作:
sudo apt autoremove netbeans
cd Downloads
sudo chmod +x netbeans-8.2-linux.sh
./netbeans-8.2-linux.sh

并按照屏幕上的指示进行操作。从应用抽屉中导入设置并启动NetBeans。
另外,如果您有任何名为JDK 8的软件包,请将其删除。您可以使用以下方法找到已安装的软件包。
sudo apt list --installed

使用以下命令删除所有名称为openjdk-8-的软件包:
sudo apt autoremove <package_name>

安装Netbeans 9.0请点击这里


1所以我认为18.04上的当前Java版本不应被标记为“稳定”。Eclipse也无法正常工作。 - neoexpert
5Netbeans在18.04下似乎出现了一些问题。我尝试了几个jdk版本(开源和Oracle),以及默认软件包和Netbeans安装程序。与Windows或Mac相关的评论并不适用,因为这个问题与18.04的状态有关。在之前的版本中,一切都正常运行。 - Captain Giraffe

我通过安装并设置JDK8为默认版本成功使其工作。
我按照这个网站的指示进行操作: https://linuxconfig.org/how-to-install-java-on-ubuntu-18-04-bionic-beaver-linux 具体步骤如下:
添加PPA软件源:
sudo add-apt-repository ppa:webupd8team/java
sudo apt update

安装Java 8,并设置为默认版本。
sudo apt install oracle-java8-set-default

我能够使用NetBeans的.sh文件安装成功。

这对我有用,应该是被接受的答案。 - Adriaan Nel

我通过运行sudo update-alternatives --config java并选择java-8选项而不是默认的java-11来解决了这个问题。但是,您仍需要安装java-8 openjdk软件包才能使其正常工作。

升级到Ubuntu 18.04后,我也遇到了同样的问题。Netbeans停止工作。我尝试了许多方法来更改配置。这个问题的主要原因是Java依赖性。Netbeans直接依赖于Oracle Java。Ubuntu 18.04默认安装并设置为默认Java的是open jdk11。当Netbeans启动时,它会检查依赖项并由于此而失败。虽然在某些情况下它会打开,但并非所有功能都能正常工作。有时只有几个窗口可以工作。特别是项目资源管理器无法工作。
要查看错误,您可以从菜单->视图->IDE日志中查看日志文件。
System Info: 
  Product Version         = NetBeans IDE 8.2 (Build 201609300101) (#5fd841261bf9)
  Operating System        = Linux version 4.15.0-34-generic running on amd64
  Java; VM; Vendor        = 1.8.0_181; Java HotSpot(TM) 64-Bit Server VM 25.181-b13; Oracle Corporation
  Runtime                 = Java(TM) SE Runtime Environment 1.8.0_181-b13
  Java Home               = /usr/lib/jvm/java-8-oracle/jre
  System Locale; Encoding = en_IN (nb); UTF-8
  Home Directory          = /home/mukesh
  Current Directory       = /home/mukesh
  User Directory          = /home/mukesh/.netbeans/8.2
  Cache Directory         = /home/mukesh/.cache/netbeans/8.2
  Installation            = /home/mukesh/netbeans-8.2/...

------------------------------------------------------------------------------

最后适合我的方法是。

最后适合我的方法是在Netbeans的安装目录中设置java_home路径。通常情况下,Netbeans 8.2安装在HOME目录中,但有时可能不同。你可以使用locate命令找到它。在内部更改java_home路径。

/home/<Netbean DIR>/etc/netbeans.conf
netbeans_jdkhome="/usr/lib/jvm/java-8-oracle"

重新启动Netbeans,它就会正常工作。
注意:更改系统中的/etc/netbeans.conf目录中的内容是无效的。

你是从Ubuntu软件源中使用Netbeans还是从Netbeans官网下载并通过脚本安装的? - Youda008
从Netbeans网站下载并使用脚本安装。 - Mukesh Singh Rathaur

删除Java 11(与Ubuntu 18.xx上的Netbeans 8.2不兼容):
sudo apt remove netbeans
sudo apt remove openjdk-11-*

安装Java 8和Netbeans 8.2(Netbeans大约为214MB):
sudo apt install openjdk-8-jdk

wget https://download.netbeans.org/netbeans/8.2/final/bundles/netbeans-8.2-linux.sh

sudo sh netbeans-8.2-linux.sh

当它询问Java位置时,请选择/usr/lib/jvm/java-8-openjdk-amd64
安装完成后,您可以通过以下方式访问它:
/usr/local/netbeans-8.2/bin/netbeans

如果您选择了默认位置。

解决我的问题的两个事情是:

  1. 将jdk设置为Oracle Java 8(如果已安装,可以在安装NetBeans时选择)
  2. 在Ubuntu上安装NetBeans 8.2,而不是默认的8.1版本

我有同样的问题,不过我解决了!实际问题是Netbeans使用了哪个jdk版本。在Bionic Beaver中,新的jdk版本已经更新,而旧版的Netbeans使用的是旧版jdk。首先卸载现有的Netbeans,然后从官网下载Netbeans,在安装过程中选择jdk8作为选项。这对我起作用了,也许对你也有效!
我是一个学习者,欢迎您的建议!