2017-01-05 2 views
4

Возникли проблемы начала воспроизведения проекта на моем Windows 10 машины (работал отлично на Win 7)Play Framework: Не удается загрузить нативную библиотеку JNotify

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

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-плагин" % "2.2.2")

к

addSbtPlugin ("com.typesafe.play "% "SBT-плагин" % "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-плагин вызывает второй выпуск)

scalaVersion: = "2.10.3" -> от build.sbt

addSbtPlugin ("com.typesafe.play" % "SBT-плагин" % "2.2.2") -> от plugins.sbt

sbt.version = 0.13.1 -> от build.properties

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

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

+0

Что такое вывод 'java -version'? – Salem

+0

ява версии "1.8.0_111" Java (TM) SE Runtime Environment (сборка 1.8.0_111-b14) Java HotSpot (TM) 64-разрядный сервер VM (сборка 25.111-b14, смешанный режим) – syedihuda

+0

Работа на Windows, это огромная проблема с производительностью, не так ли? + –

ответ

4

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

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

+0

Чтобы добавить в 64-разрядную версию Linux: я закончил загрузку отсюда: https://sourceforge.net/projects/jnotify/files/jnotify/, который имеет 64-разрядную директорию Linux с файлом libnotify.so, который я пришлось использовать в соответствии с jnotify jar-файлом. (Ссылка FYI github, которая привела меня на эту страницу: https://github.com/aerofs/jnotify) – manyways

+0

@manyways Ответ, описанный подробно, был бы более полезен для пользователей Linux –

Смежные вопросы