使用Ant构建Java项目遇java/lang/NoClassDefFoundError问题求助
问题描述
使用Ant 1.7.1构建Java项目时触发VM初始化异常,环境配置及错误信息如下:
已配置的环境变量
$ echo $JAVA_HOME /usr/lib/jvm/jdk1.5.0_06 $ echo $ANT_HOME /home/.../..../apache-ant-1.7.1/bin
执行ant命令后的错误
$ ant Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
补充信息
$ java -version openjdk version "1.8.0_362" OpenJDK Runtime Environment (build 1.8.0_362-8u372-ga~us1-0ubuntu1~18.04-b09) OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode) $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin $ /usr/lib/jvm/jdk1.5.0_06/bin/java Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
问题分析与修复方案
1. ANT_HOME路径配置错误
ANT_HOME需指向Ant的根目录,而非bin子目录。当前配置路径错误,需修改为:
export ANT_HOME=/home/.../..../apache-ant-1.7.1
同时将Ant的bin目录加入系统PATH:
export PATH=$ANT_HOME/bin:$PATH
2. JDK 1.5安装损坏或不完整
直接执行JDK 1.5的java命令仍触发核心类找不到的错误,说明该JDK的核心类库(如rt.jar)缺失或损坏:
- 重新下载并完整安装JDK 1.5.0_06,确保安装过程无报错;
- 验证安装:执行
/usr/lib/jvm/jdk1.5.0_06/bin/java -version,若能正常输出版本信息则说明安装有效。
3. PATH未包含JDK 1.5的bin目录
当前PATH中无JDK 1.5的bin路径,导致系统默认使用OpenJDK 1.8。需将JDK 1.5的bin目录加入PATH,且优先级高于系统默认Java路径:
export PATH=$JAVA_HOME/bin:$PATH
配置完成后执行java -version,确认当前使用的是JDK 1.5.0_06。
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

