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

编译NASA DAA-Displays项目时遇Java包找不到错误求助

排查Java编译时找不到gov.nasa.larcfm.ACCoRD包的问题

针对你遇到的编译错误,按以下步骤逐一排查:

1. 确认DAIDALUS2.jar包的完整性

首先检查你引用的DAIDALUS2.jar里是否真的包含报错的gov.nasa.larcfm.ACCoRD包类。在项目根目录执行:

jar tf daidalus-submodules/v2.0.2/Java/lib/DAIDALUS2.jar | grep "gov/nasa/larcfm/ACCoRD/Alerter"

如果没有输出,说明这个jar包不包含所需类,可能是子模块拉取不完整,或者jar包本身损坏。

2. 验证相对路径的正确性

执行编译命令时,当前目录是dist/daa-logic/utils,命令里的../../../daidalus-submodules/v2.0.2/Java/lib/DAIDALUS2.jar相对路径是否正确?手动从utils目录往上走三级,看看是否存在这个jar包:

cd dist/daa-logic/utils
ls -l ../../../daidalus-submodules/v2.0.2/Java/lib/DAIDALUS2.jar

如果提示文件不存在,说明路径写错了——比如你提到的是vx.0.2,可能版本号参数写错成v2.0.2了,根据实际项目结构修正即可。

3. 手动测试编译命令

先简化命令,单独测试javac编译,排除后续命令干扰:

cd dist/daa-logic/utils
javac -cp ../../../daidalus-submodules/v2.0.2/Java/lib/DAIDALUS2.jar DAABandsV2.java

如果还是报错,尝试把jar包的绝对路径代入,比如:

javac -cp /full/path/to/daa-displays/daidalus-submodules/v2.0.2/Java/lib/DAIDALUS2.jar DAABandsV2.java

绝对路径能正常编译的话,说明相对路径有问题,需要修正Makefile里的路径配置。

4. 若jar包无效,直接用源码编译

如果jar包里确实没有所需类,你可以直接用源码目录作为类路径编译。修改Makefile里的javac命令,把src目录加入-cp参数:

javac -cp ../../../daidalus-submodules/v2.0.2/Java/src:../../../daidalus-submodules/v2.0.2/Java/lib/DAIDALUS2.jar DAABandsV2.java DAAMonitorsV2.java

注意类路径里多个资源在Linux/macOS下用冒号分隔,Windows下用分号分隔。

5. 检查子模块是否拉取完整

daidalus-submodules是Git子模块,可能你克隆项目时没拉取子模块内容。在项目根目录执行:

git submodule update --init --recursive

确保子模块的代码和jar包都完整下载。

内容的提问来源于stack exchange,提问作者Hemil Mehul Shah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:20:17