根据Scala.js的说法,我有一个这个例子 web应用程序,我正在尝试调用第三方Java库。
我收到一个奇怪的错误,指示缺少一个jansi库,但是我将jansi-1.11.jar添加到我的路径中。
exampleJVM [INFO] [02/16/2016 16:14:56.331] [default-akka.actor.default-dispatcher-2] [akka://default/user/IO-HTTP/listener-0] Bound to /0.0.0.0:8080
exampleJVM[ERROR] Uncaught error from thread [default-akka.actor.default-dispatcher-3] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[default]
exampleJVM [ERROR] [02/16/2016 16:14:58.694] [default-akka.actor.default-dispatcher-3] [ActorSystem(default)] Uncaught error from thread [default-akka.actor.default-dispatcher-3] shutting
down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
exampleJVM[ERROR] java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path]
exampleJVM[ERROR] at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
exampleJVM java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path]
exampleJVM[ERROR] at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
exampleJVM[ERROR] at org.fusesource.jansi.internal.Kernel32.<clinit>(Kernel32.java:37)
exampleJVM at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
exampleJVM[ERROR] at org.fusesource.jansi.WindowsAnsiOutputStream.<clinit>(WindowsAnsiOutputStream.java:52)
exampleJVM[ERROR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
exampleJVM at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
exampleJVM[ERROR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
exampleJVM at org.fusesource.jansi.internal.Kernel32.<clinit>(Kernel32.java:37)
exampleJVM[ERROR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
exampleJVM at org.fusesource.jansi.WindowsAnsiOutputStream.<clinit>(WindowsAnsiOutputStream.java:52)
exampleJVM[ERROR] at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
exampleJVM at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
exampleJVM[ERROR] at org.apache.logging.log4j.core.appender.ConsoleAppender.getOutputStream(ConsoleAppender.java:198)
exampleJVM at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)我在某个地方尝试过几件事.我安装了Visual C++可再发行版或将fork in run := true添加到我的build.sbt中--但没有成功.
发布于 2016-02-22 21:03:59
试着添加
"org.fusesource.jansi" % "jansi" % "1.11",到build.sbt的第29行
https://github.com/lihaoyi/workbench-example-app/blob/autowire/build.sbt#L29
UPDATE:我下载了您的项目(分支autowire),向build.sbt添加了依赖项,并向example.Server.main添加了以下行
import org.fusesource.jansi.AnsiConsole
import org.fusesource.jansi.Ansi._
import org.fusesource.jansi.Ansi.Color._
AnsiConsole.systemInstall()
println( ansi().eraseScreen().fg(RED).a("Hello").fg(GREEN).a(" World").reset() )对我来说很管用。你能把你的版本的代码上传到github吗?
发布于 2016-11-01 12:30:28
您所得到的错误是运行时错误。所以,我认为你和构建路径无关。如果您在Windows中工作,请尝试将jansi.dll安装到任何java.library.path目录中;例如c:/windows/system32 32。我认为这不是最好的解决方法,但在处理了3个小时后,它对我来说很好,可以找到一种方法来修改运行时路径以包含jansi.jar文件。
https://stackoverflow.com/questions/35436362
复制相似问题