You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04中apt安装的NetBeans运行项目时提示找不到主类

问题概述
  • 运行环境:Ubuntu 20.04.2 LTS,openjdk 11.0.10 2021-01-19,通过sudo apt install netbeans安装的Apache NetBeans IDE 10.0
  • 操作流程:跟随NetBeans基础教程新建Java项目,勾选「创建主类」复选框,编写Hello World代码如下:
package javaapplication5;
   
public class JavaApplication5 {

    public static void main(String[] args) {
        System.out.print("Hello world!");
    }
}
  • 异常现象:
    • 尝试运行代码时,弹出错误提示「在JavaApplication5项目中找不到javaapplication5.JavaApplication5类」
    • 右键项目选择「运行」、手动指定待运行类时,目标类完全不出现在可选列表中
    • 配有问题相关操作截图
    • 执行项目构建后,输出窗口显示编译、打包全部成功,日志如下:
ant -f /home/marco/NetBeansProjects/JavaApplication6 -Dnb.internal.action.name=rebuild clean jar
init:
deps-clean:
Updating property file: /home/marco/NetBeansProjects/JavaApplication6/build/built-clean.properties
Deleting directory /home/marco/NetBeansProjects/JavaApplication6/build
clean:
init:
deps-jar:
Created dir: /home/marco/NetBeansProjects/JavaApplication6/build
Updating property file: /home/marco/NetBeansProjects/JavaApplication6/build/built-jar.properties
Created dir: /home/marco/NetBeansProjects/JavaApplication6/build/classes
Created dir: /home/marco/NetBeansProjects/JavaApplication6/build/empty
Created dir: /home/marco/NetBeansProjects/JavaApplication6/build/generated-sources/ap-source-output
Compiling 1 source file to /home/marco/NetBeansProjects/JavaApplication6/build/classes
compile:
Created dir: /home/marco/NetBeansProjects/JavaApplication6/dist
Copying 1 file to /home/marco/NetBeansProjects/JavaApplication6/build
Building jar: /home/marco/NetBeansProjects/JavaApplication6/dist/JavaApplication6.jar
To run this application from the command line without Ant, try:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /home/marco/NetBeansProjects/JavaApplication6/dist/JavaApplication6.jar javaapplication6.JavaApplication6
deploy:
jar:
BUILD SUCCESSFUL (total time: 1 second)
  • 手动执行日志中给出的java运行命令,程序可正常输出结果
  • 临时验证结果:替换为Apache官方发布的NetBeans版本后,可正常创建主类、编译运行项目,但暂不明确两种版本的差异
故障原因
  • 版本适配缺陷:Ubuntu apt源提供的NetBeans 10.0发布于2018年,原生支持范围为Java 8/10,对OpenJDK 11的类路径扫描、主类自动探测逻辑存在已知兼容性问题,无法正确识别已编译的主类。
  • 系统打包裁剪:Ubuntu官方为遵循Debian系包管理规范,对上游NetBeans进行了功能裁剪,移除了部分主类关联、运行入口配置的核心组件,导致IDE无法正确关联可运行的类文件。
  • 运行配置缺失:apt打包的NetBeans默认生成的项目配置中,未自动填充主类路径参数,运行时默认查找的类路径与实际编译输出的类路径不匹配,触发找不到类的错误。
解决方案
  • 优先方案:卸载apt安装的NetBeans,使用Apache官方发布的原生版本。该版本功能完整,对OpenJDK 11及以上版本的兼容性更好,可自动识别主类、完成运行配置。
  • 临时补救方案(继续使用apt安装版本时):
    • 右键项目选择「属性」→「运行」,在「主类」输入框手动填写完整类路径javaapplication5.JavaApplication5,保存后即可正常运行。
    • 切换JDK版本为OpenJDK 8,匹配NetBeans 10的原生适配范围,避免兼容问题。
两种安装版本的核心差异
  • apt源安装版本:为Ubuntu官方二次打包的适配版本,版本更新滞后,功能经过裁剪,仅适配系统级包管理规范,对新JDK的兼容性差。
  • Apache官方版本:为上游原生发布版本,功能完整,支持自动更新,可适配最新的JDK版本,适合Java开发场景使用。

内容的提问来源于stack exchange,提问作者Marco Antnio Barra Montevechi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 23:45:05