{"id":5566,"date":"2017-12-30T16:49:47","date_gmt":"2017-12-30T16:49:47","guid":{"rendered":"http:\/\/www.garysieling.com\/blog\/?p=5566"},"modified":"2017-12-30T16:49:47","modified_gmt":"2017-12-30T16:49:47","slug":"fixing-sbt-error-java-lang-unsatisfiedlinkerror-native-library-cusersgary-javacppcachend4j-native-0-9-1-windows-x86_64-jarorgnd4jnativeblaswindows-x86_64jnind4jcpu-dll-already-loaded-another-cla","status":"publish","type":"post","link":"https:\/\/www.garysieling.com\/blog\/fixing-sbt-error-java-lang-unsatisfiedlinkerror-native-library-cusersgary-javacppcachend4j-native-0-9-1-windows-x86_64-jarorgnd4jnativeblaswindows-x86_64jnind4jcpu-dll-already-loaded-another-cla\/","title":{"rendered":"Fixing sbt error: java.lang.UnsatisfiedLinkError: Native Library C:\\Users\\gary\\.javacpp\\cache\\nd4j-native-0.9.1-windows-x86_64.jar\\org\\nd4j\\nativeblas\\windows-x86_64\\jnind4jcpu.dll already loaded in another classloader"},"content":{"rendered":"<p>If you write code with ND4S and try to run it with &#8220;~run&#8221;, you&#8217;ll get the following error, subsequent to the first run.<\/p>\n<p>The fix to this is to add this line to your build.sbt, which causes a new JVM to run on each run:<\/p>\n<pre>\nfork := true\n<\/pre>\n<p>Error:<\/p>\n<pre>\njava.lang.ExceptionInInitializerError\n        at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.<init>(NativeOpExecutioner.java:53)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n        at java.lang.Class.newInstance(Class.java:442)\n        at org.nd4j.linalg.factory.Nd4j.initWithBackend(Nd4j.java:6185)\n        at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6087)\n        at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)\n        at org.nd4s.Implicits$IntArray2INDArray$.asNDArray$extension(Implicits.scala:48)\n        at Main$.main(Main.scala:10)\n        at Main.main(Main.scala)\n        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n        at java.lang.reflect.Method.invoke(Method.java:498)\nCaused by: java.lang.RuntimeException: ND4J is probably missing dependencies. For more information, please refer to: http:\/\/nd4j.org\/getstarted.html\n        at org.nd4j.nativeblas.NativeOpsHolder.<init>(NativeOpsHolder.java:51)\n        at org.nd4j.nativeblas.NativeOpsHolder.<clinit>(NativeOpsHolder.java:19)\n        at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.<init>(NativeOpExecutioner.java:53)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n        at java.lang.Class.newInstance(Class.java:442)\n        at org.nd4j.linalg.factory.Nd4j.initWithBackend(Nd4j.java:6185)\n        at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6087)\n        at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)\n        at org.nd4s.Implicits$IntArray2INDArray$.asNDArray$extension(Implicits.scala:48)\n        at Main$.main(Main.scala:10)\n        at Main.main(Main.scala)\n        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n        at java.lang.reflect.Method.invoke(Method.java:498)\nCaused by: java.lang.UnsatisfiedLinkError: no jnind4jcpu in java.library.path\n        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)\n        at java.lang.Runtime.loadLibrary0(Runtime.java:870)\n        at java.lang.System.loadLibrary(System.java:1122)\n        at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:976)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:777)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:684)\n        at org.nd4j.nativeblas.Nd4jCpu.<clinit>(Nd4jCpu.java:10)\n        at java.lang.Class.forName0(Native Method)\n        at java.lang.Class.forName(Class.java:348)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:739)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:684)\n        at org.nd4j.nativeblas.Nd4jCpu$NativeOps.<clinit>(Nd4jCpu.java:63)\n        at java.lang.Class.forName0(Native Method)\n        at java.lang.Class.forName(Class.java:264)\n        at org.nd4j.nativeblas.NativeOpsHolder.<init>(NativeOpsHolder.java:29)\n        at org.nd4j.nativeblas.NativeOpsHolder.<clinit>(NativeOpsHolder.java:19)\n        at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.<init>(NativeOpExecutioner.java:53)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n        at java.lang.Class.newInstance(Class.java:442)\n        at org.nd4j.linalg.factory.Nd4j.initWithBackend(Nd4j.java:6185)\n        at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6087)\n        at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)\n        at org.nd4s.Implicits$IntArray2INDArray$.asNDArray$extension(Implicits.scala:48)\n        at Main$.main(Main.scala:10)\n        at Main.main(Main.scala)\n        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n        at java.lang.reflect.Method.invoke(Method.java:498)\nCaused by: java.lang.UnsatisfiedLinkError: Native Library C:\\Users\\gary\\.javacpp\\cache\\nd4j-native-0.9.1-windows-x86_64.jar\\org\\nd4j\\nativeblas\\windows-x86_64\\jnind4jcpu.dll already loaded in another classloader\n        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1907)\n        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)\n        at java.lang.Runtime.load0(Runtime.java:809)\n        at java.lang.System.load(System.java:1086)\n        at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:956)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:777)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:684)\n        at org.nd4j.nativeblas.Nd4jCpu.<clinit>(Nd4jCpu.java:10)\n        at java.lang.Class.forName0(Native Method)\n        at java.lang.Class.forName(Class.java:348)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:739)\n        at org.bytedeco.javacpp.Loader.load(Loader.java:684)\n        at org.nd4j.nativeblas.Nd4jCpu$NativeOps.<clinit>(Nd4jCpu.java:63)\n        at java.lang.Class.forName0(Native Method)\n        at java.lang.Class.forName(Class.java:264)\n        at org.nd4j.nativeblas.NativeOpsHolder.<init>(NativeOpsHolder.java:29)\n        at org.nd4j.nativeblas.NativeOpsHolder.<clinit>(NativeOpsHolder.java:19)\n        at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.<init>(NativeOpExecutioner.java:53)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n        at java.lang.Class.newInstance(Class.java:442)\n        at org.nd4j.linalg.factory.Nd4j.initWithBackend(Nd4j.java:6185)\n        at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6087)\n        at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)\n        at org.nd4s.Implicits$IntArray2INDArray$.asNDArray$extension(Implicits.scala:48)\n        at Main$.main(Main.scala:10)\n        at Main.main(Main.scala)\n        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n        at java.lang.reflect.Method.invoke(Method.java:498)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Fixing an error running code with ND4s in scala<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[9],"tags":[300,352,379,380,480],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/5566"}],"collection":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/comments?post=5566"}],"version-history":[{"count":0,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/5566\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/media?parent=5566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/categories?post=5566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/tags?post=5566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}