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

Macbook M1上Shadow cljs无法识别Java,执行npm start报错

问题描述

使用npx create-cljs-project my-app创建项目后,执行npm start启动时出现错误,更换多个Java版本后问题仍未解决。

报错信息

shadow-cljs - config: /Users/tomaszsikora/dev/my-app/shadow-cljs.edn
Execution error (UnsatisfiedLinkError) at java.lang.ClassLoader/loadLibrary (ClassLoader.java:2398).
Can't load library: /var/folders/x7/k_6f989d60z2k0pz_cz_3y_40000gn/T/jna1171015707293329039.tmp
Full report at:
/var/folders/x7/k_6f989d60z2k0pz_cz_3y_40000gn/T/clojure-11795200488797552517.edn

完整错误追踪(部分)

{:clojure.main/message
 "Execution error (UnsatisfiedLinkError) at java.lang.ClassLoader/loadLibrary (ClassLoader.java:2398).\nCan't load library: /var/folders/x7/k_6f989d60z2k0pz_cz_3y_40000gn/T/jna14133068692257536681.tmp\n",
 :clojure.main/triage
 {:clojure.error/class java.lang.UnsatisfiedLinkError,
  :clojure.error/line 2398,
  :clojure.error/cause
  "Can't load library: /var/folders/x7/k_6f989d60z2k0pz_cz_3y_40000gn/T/jna14133068692257536681.tmp",
  :clojure.error/symbol java.lang.ClassLoader/loadLibrary,
  :clojure.error/source "ClassLoader.java",
  :clojure.error/phase :execution},
 :clojure.main/trace
 {:via
  [{:type java.lang.UnsatisfiedLinkError,
    :message
    "Can't load library: /var/folders/x7/k_6f989d60z2k0pz_cz_3y_40000gn/T/jna14133068692257536681.tmp",
    :at [java.lang.ClassLoader loadLibrary "ClassLoader.java" 2398]}],
  :trace

当前使用的Java版本

tomaszsikora@DeadBook-Void my-app % java --version
openjdk 18.0.2.1 2022-08-18
OpenJDK Runtime Environment Homebrew (build 18.0.2.1+0)
OpenJDK 64-Bit Server VM Homebrew (build 18.0.2.1+0, mixed mode, sharing)

解决方法

  • 清理临时文件:直接删除报错中临时目录下的所有jna开头的tmp文件,或清空/var/folders/x7/k_6f989d60z2k0pz_cz_3y_40000gn/T/目录。
  • 指定JNA临时目录:手动设置权限充足的临时目录,执行以下命令再启动项目:
    mkdir -p /tmp/jna-tmp && chmod 777 /tmp/jna-tmp
    export JNA_TMPDIR=/tmp/jna-tmp && npm start
    
  • 切换到Java LTS版本:尝试使用Java 11或17(长期支持版),非LTS版本可能存在兼容性问题。用Homebrew安装并切换:
    brew install openjdk@17
    export PATH="/usr/local/opt/openjdk@17/bin:$PATH"
    
  • 更新shadow-cljs依赖:进入项目目录执行npm update shadow-cljs,更新到最新版本修复潜在兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:57:30