Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Play Framework: Cannot load the JNotify native library

Having issues starting Play project on my Windows 10 machine (worked fine on Win 7)

When I do "activator run" I get the following:

Error loading library, java.library.path=C:\Program Files\Java\jdk1.8.0_111\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\cygwin64\usr\local\bin;C:\cygwin64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Java\jdk1.8.0_111\bin;C:\Program Files\PostgreSQL\9.6\bin;C:\Program Files\Git\cmd;C:\dev\utils\activator-1.3.5-minimal;C:\Users\shuda\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Heroku\bin;.;C:\dev\projects\energywatch-portal-bk\target\native_libraries\64bits

Cannot load the JNotify native library (no jnotify_64bit in java.library.path)
Play will check file changes for each request, so expect degraded reloading performace.

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

[success] Compiled in 1s

I've tried many things with no success. I've tried changing from:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.2")

to

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.2")

and I get another error:

java.lang.NoClassDefFoundError: play/Project$
        at com.typesafe.sbt.SbtEchoPlay$.tracePlaySettings(SbtEchoPlay.scala:19)
        at com.typesafe.sbt.SbtEchoPlay$.echoPlaySettings$lzycompute(SbtEchoPlay.scala:16)
        at com.typesafe.sbt.SbtEchoPlay$.echoPlaySettings(SbtEchoPlay.scala:16)
...
Caused by: java.lang.ClassNotFoundException: play.Project$
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at com.typesafe.sbt.SbtEchoPlay$.tracePlaySettings(SbtEchoPlay.scala:19)
        at com.typesafe.sbt.SbtEchoPlay$.echoPlaySettings$lzycompute(SbtEchoPlay.scala:16)
        at com.typesafe.sbt.SbtEchoPlay$.echoPlaySettings(SbtEchoPlay.scala:16)
       ...

So, here's my environment setup currently (changing sbt-plugin causes 2nd issue)

scalaVersion := "2.10.3" -> from build.sbt

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.2") -> from plugins.sbt

sbt.version=0.13.1 -> from build.properties

Again, I'm on Win 10 (64bit)

Really need some assistance here, been stuck for a few days.

like image 846
syedihuda Avatar asked Jan 05 '17 19:01

syedihuda


1 Answers

That message means Play can't find the jnotify lib, so it will use an internal process to check for file changes (ie recompile and restart the app when a file changes). It should not stop you from using the framework, but the performance may be worst than with jnotify.

Either way, you can download JNotify from https://sourceforge.net/projects/jnotify/ and install it (just copy the jnotify_64bit.dll to C:\Program Files\Java\jdk1.8.0_111\bin), and that message should be gone.

like image 118
Salem Avatar answered Nov 11 '22 23:11

Salem