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

Mac M1设备上Play2 Maven插件1.0.0-rc5架构兼容问题求助

解决Mac M1(ARM64)上Play2 Maven项目的libjnotify.jnilib架构兼容问题

你的问题核心是当前使用的libjnotify.jnilib只包含x86_64/i386架构,不支持M1的ARM64,导致JVM加载失败。以下是几种可行的解决方法:

方法一:替换为ARM64兼容的jnotify原生库

  • 自行编译ARM64版本的libjnotify:

    1. 获取jnotify的源码,从官方代码仓库拉取
    2. 在M1 Mac上用Xcode打开原生代码工程,编译目标架构选择arm64,生成新的libjnotify.jnilib
    3. 替换项目target/native_libraries目录下的旧文件,或者在Maven依赖中配置引入这个适配后的库
  • 验证:替换后执行以下命令确认架构支持:

    lipo -info /Users/xxxx/my-project/target/native_libraries/libjnotify.jnilib
    

    输出中需包含arm64字样。

方法二:用Rosetta 2兼容模式运行Maven

M1 Mac的Rosetta 2可以模拟x86_64环境,直接适配现有库:

  • 右键终端应用 -> 显示简介 -> 勾选「使用Rosetta打开」
  • 在这个新终端窗口中重新执行mvn clean install和mvn play2:run,JVM会以x86_64模式运行,就能加载现有的libjnotify.jnilib了

方法三:替换依赖,移除jnotify依赖

如果不需要文件监听功能,或者可以用纯Java方案替代:

  • 执行mvn dependency:tree找到引入jnotify的依赖节点
  • 在pom.xml中对该依赖添加排除规则:
    <dependency>
        <!-- 原依赖 -->
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <exclusions>
            <exclusion>
                <groupId>net.contentobjects.jnotify</groupId>
                <artifactId>jnotify</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 替换为纯Java的文件监听组件,比如Apache Commons IO的FileAlterationObserver,避免依赖原生库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:52:36