Play Framework: не удается загрузить собственную библиотеку JNotify.

Возникли проблемы с запуском проекта Play на моем компьютере с Windows 10 (отлично работал на Win 7)

Когда делаю "запуск активатора" получаю следующее:

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

Я много чего пробовал безуспешно. Я пробовал переходить с:

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

to

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

и я получаю еще одну ошибку:

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)
       ...

Итак, вот моя настройка среды в настоящее время (изменение sbt-plugin вызывает вторую проблему)

scalaVersion: = "2.10.3" -> из build.sbt

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

sbt.version = 0.13.1 -> из build.properties

Опять же, я на Win 10 (64 бит)

Здесь действительно нужна помощь, я застрял на несколько дней.


person syedihuda    schedule 05.01.2017    source источник
comment
Что выводит java -version?   -  person Salem    schedule 06.01.2017
comment
java версия 1.8.0_111 Java (TM) SE Runtime Environment (сборка 1.8.0_111-b14) 64-разрядная серверная виртуальная машина Java HotSpot (TM) (сборка 25.111-b14, смешанный режим)   -  person syedihuda    schedule 06.01.2017
comment
Работа в Windows - это огромная проблема с производительностью, не так ли? +   -  person Spektakulatius    schedule 29.08.2017


Ответы (1)


Это сообщение означает, что Play не может найти jnotify lib, поэтому он будет использовать внутренний процесс для проверки изменений файла (т.е. перекомпилировать и перезапустить приложение при изменении файла). Это не должно мешать вам использовать фреймворк, но производительность может быть хуже, чем с jnotify.

В любом случае вы можете загрузить JNotify со страницы https://sourceforge.net/projects/jnotify/ и установить это (просто скопируйте jnotify_64bit.dll в C:\Program Files\Java\jdk1.8.0_111\bin), и это сообщение должно исчезнуть.

person Salem    schedule 05.01.2017
comment
Чтобы добавить, в 64-битной Linux: я загрузил отсюда: sourceforge.net/projects / jnotify / files / jnotify, в котором есть 64-разрядный каталог Linux с файлом libnotify.so, который мне пришлось использовать вместе с файлом jnotify jar. (К вашему сведению, ссылка на github, которая привела меня на эту страницу: github.com/aerofs/jnotify) - person manyways; 27.08.2017
comment
@manyways Подробно описанный ответ будет более полезен для пользователей Linux. - person Spektakulatius; 29.08.2017