SLF4J: не удалось загрузить класс «org.slf4j.impl.StaticLoggerBinder» Путь был установлен

#clojure #slf4j

#clojure #slf4j

Вопрос:

Я пытаюсь запустить приведенный ниже простой код из [https://neanderthal.uncomplicate.org/articles/getting_started.html#overview-and-features ]

Я уже обновил свой ПУТЬ, как указано в [https://www.slf4j.org/codes.html#StaticLoggerBinder ]

Библиотеки математического ядра 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:UsersippokAppDataLocalTempneanderthal-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:UsersippokJarsjar_files
   C:Program FilesMATLABR2018bjavajarextslf4j
  

Путь к классу

   C:Usersippok>java -classpath
   Error: -classpath requires class path specification
  

Комментарии:

1. не по теме: чтобы отключить сообщения SLF4J, см. spin.atomicobject.com/2015/05/11/clojure-logging (TLDR; добавьте эту зависимость к project.clj : [ch.qos.logback/logback-classic "1.1.3"] )

Ответ №1:

Я ничего не знаю о неандертальце, но, похоже, здесь есть ряд проблем:

  • Эта переменная среды объявлена в стиле UNIX: DYLD_LIBRARY_PATH "/opt/intel/mkl/lib:/opt/intel/lib" но вы, похоже, работаете в Windows из-за вашей другой ошибки.

Я думаю, что вы скопировали пример из lin-alg-app, но, согласно документам, этот пример использует эту переменную среды при запуске под Mac OS. Для Windows вам нужно что-то вроде следующего в вашем project.clj :

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

В противном случае добавьте путь к библиотекам DLL в переменную среды PATH, например, выполните следующее cmd.exe перед запуском Leiningen:

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

… предполагая, что вы установили собственные библиотеки в C:UsersippokDLLs .

Ответ №2:

Я уже сделал это, поместив файлы dll в PATH (set PATH), но это проблема с библиотеками DLL MKL или проблема с файлами jar. Считается ли это интуитивной установкой?