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

JDK17下Maven构建JacORB时org.omg.CORBA不存在问题求助

解决JDK17下Maven构建JacORB的org.omg.CORBA缺失问题

问题根源

  • JDK 9及以上版本(含17)已移除默认自带的CORBA模块,编译时无法找到org.omg.CORBA相关类。
  • JacORB的omgapi模块依赖idl-compiler生成代码,直接在idl-compiler中添加omgapi依赖会触发循环依赖,导致构建失败。

解决方案

方法一:添加第三方CORBA API依赖(推荐)

编辑idl-compiler/pom.xml,在<dependencies>节点中添加CORBA API规范依赖(仅用于编译阶段,避免循环):

<dependency>
    <groupId>org.omg.spec.corba</groupId>
    <artifactId>CORBA_2_3_1_spec</artifactId>
    <version>1.0.0</version>
    <scope>provided</scope>
</dependency>

完成后执行以下命令先单独编译idl-compiler,再构建整个项目:

# 先编译idl-compiler模块
mvn clean install -pl idl-compiler
# 再构建整个项目
mvn clean install

方法二:临时用JDK8编译idl-compiler

如果方法一无效,可借助JDK8自带的CORBA模块完成idl-compiler的编译,再切换回JDK17构建全量项目:

  1. 临时切换JAVA_HOME到JDK8路径(根据你的实际路径调整):
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  1. 编译idl-compiler模块:
mvn clean install -pl idl-compiler
  1. 切回JDK17环境:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
  1. 构建整个JacORB项目:
mvn clean install

额外检查

确保JacORB根pom.xml中已配置JDK17的编译参数:

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
</properties>

内容的提问来源于stack exchange,提问作者Mehdi Charife

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:03:27