#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. Считается ли это интуитивной установкой?