SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”路径已设置

问题描述 投票:0回答:2

我试图从[https://neanderthal.uncomplicate.org/articles/getting_started.html#overview-and-features]运行下面的简单代码

我已经更新了我的PATH,如[https://www.slf4j.org/codes.html#StaticLoggerBinder]所示

已安装Math Kernel Libraries 2018。

文件project.clj

 (defproject math "0.0.1-SNAPSHOT"
 :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.10.0"]
             [uncomplicate/neanderthal "0.22.1"]
             [info.sunng/ring-jetty9-adapter "0.12.2"]]  
   :plugins [[lein-with-env-vars "0.1.0"]]
  :env-vars {:DYLD_LIBRARY_PATH "/opt/intel/mkl/lib:/opt/intel/lib"}

 :aot [math.core]
 :main math.core)

文件core.clj

(ns math.core
(:use [uncomplicate.neanderthal core native]))



(def x (dv 1 2 3))
(def y (dv 10 20 30))
(dot x y)

我收到以下错误:

 Compiling math.core
 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
 SLF4J: Defaulting to no-operation (NOP) logger implementation
 SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further 
details.
Syntax error compiling at (core.clj:8:1).
Exception in thread "main" Syntax error compiling at (core.clj:8:1).

................. .................

  Caused by: java.lang.UnsatisfiedLinkError: 
  C:\Users\ippok\AppData\Local\Temp\neanderthal-mkl- 
  0.21.07551967567311097171.dll: Can't find dependent libraries
  at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
  at java.base/java.lang.
   ClassLoader$NativeLibrary.load(ClassLoader.java:2430)

我的路径包括:

   C:\Users\ippok\Jars\jar_files
   C:\Program Files\MATLAB\R2018b\java\jarext\slf4j

类路径

  C:\Users\ippok>java -classpath
   Error: -classpath requires class path specification
clojure slf4j
2个回答
0
投票

我对尼安德特人一无所知,但这里似乎有很多问题:

  • 此环境变量以UNIX样式声明:DYLD_LIBRARY_PATH "/opt/intel/mkl/lib:/opt/intel/lib"但由于您的其他错误,您似乎在Windows上运行。

我想你复制了lin-alg-app的例子,但according to the docs该示例在Mac OS下运行时使用了该环境变量。对于Windows,您需要在project.clj中使用以下内容:

 :env-vars {:PATH "/Users/ippok/DLLs"}

否则,在PATH环境变量中添加DLL的路径,比如在运行Leiningen之前在cmd.exe中运行以下命令:

set PATH=%PATH%;/Users/ippok/DLLs

...假设您已经在C:\Users\ippok\DLLs中安装了本机库。


0
投票

我已经这样做了把dll文件放在PATH(设置PATH)但是它是MKL dll的问题,或者是jar文件的问题。这被认为是直观的安装吗?

© www.soinside.com 2019 - 2024. All rights reserved.