Mac环境下Apache Arrow v11安装失败及编译错误求助
Apache Arrow v11 在MacBook上安装异常的解决方案
问题1:构建JNI C Data Interface库失败
错误原因
- 执行命令时目录错误:当前目录为
/Users/apple/Downloads/arrow,该目录无Maven POM文件,需在arrow/java目录下执行命令。 - 指定的Profile不存在:
generate-libs-cdata-all-os并非Arrow v11支持的Profile名称。
解决步骤
- 切换到正确目录:
cd /Users/apple/Downloads/arrow/java - 使用Arrow v11对应平台的正确Profile命令:
针对MacOS,执行以下命令构建JNI C Data Interface库:
若需构建全平台库,尝试使用通用Profile:mvn generate-resources -Pgenerate-libs-cdata-darwin -Nmvn generate-resources -Pgenerate-libs-cdata -N
问题2:IntelliJ IDEA中找不到sun.misc.Unsafe与sun.misc包
错误原因
JDK 16及以上版本默认限制了对sun.misc内部API的访问,而Arrow v11的MemoryUtil类依赖该API。
解决步骤
方法1:配置IntelliJ编译器参数
- 打开File > Project Structure > Modules,选中Arrow相关模块。
- 进入Dependencies标签页,点击JDK右侧的Edit按钮。
- 在弹出窗口的VM options中添加参数:
--add-exports java.base/sun.misc=ALL-UNNAMED - 保存配置后重新编译项目。
方法2:修改Maven编译参数
编辑arrow/java/memory/memory-core/pom.xml,在maven-compiler-plugin中添加编译参数:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerArgs> <arg>--add-exports</arg> <arg>java.base/sun.misc=ALL-UNNAMED</arg> </compilerArgs> </configuration> </plugin>
重新执行Maven构建:
mvn clean install
方法3:降级JDK版本
若上述方法无效,可将JDK降级至11或8(Arrow v11对这两个版本兼容性更优),重新构建项目。
内容的提问来源于stack exchange,提问作者Chirath LV
相关产品推荐
相关产品推荐

