SLF4J:未能加载类“ org.slf4j.impl.StaticLoggerBinder”。路径已设置

时间:2019-04-13 20:06:57

标签: clojure slf4j

我正在尝试从[https://neanderthal.uncomplicate.org/articles/getting_started.html#overview-and-features]

运行以下简单代码

我已经按照[https://www.slf4j.org/codes.html#StaticLoggerBinder]

中的指示更新了PATH。

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

Classpath

  C:\Users\ippok>java -classpath
   Error: -classpath requires class path specification

2 个答案:

答案 0 :(得分: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"}

否则,将路径添加到DLL环境变量中的DLL,就像在运行Leiningen之前在cmd.exe中运行以下命令一样:

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

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

答案 1 :(得分:0)

我已经完成了将dll文件放入PATH(设置PATH)的操作,但这是MKL dll的问题还是jar文件的问题。 这被认为是直观的安装吗?