Play Framework: Tidak dapat memuat perpustakaan asli JNotify

Mengalami masalah saat memulai proyek Play di mesin Windows 10 saya (berfungsi dengan baik di Win 7)

Ketika saya melakukan "activator run" saya mendapatkan yang berikut:

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

Saya sudah mencoba banyak hal tetapi tidak berhasil. Saya sudah mencoba mengubah dari:

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

to

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

dan saya mendapatkan kesalahan lain:

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

Jadi, inilah pengaturan lingkungan saya saat ini (mengubah plugin sbt menyebabkan masalah kedua)

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

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

sbt.version=0.13.1 -> dari build.properties

Sekali lagi, saya menggunakan Win 10 (64bit)

Benar-benar butuh bantuan di sini, terjebak selama beberapa hari.


person syedihuda    schedule 05.01.2017    source sumber
comment
Apa keluaran dari java -version?   -  person Salem    schedule 06.01.2017
comment
java versi 1.8.0_111 Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mode campuran)   -  person syedihuda    schedule 06.01.2017
comment
Bekerja pada Windows adalah masalah kinerja yang sangat besar bukan? +   -  person Spektakulatius    schedule 29.08.2017


Jawaban (1)


Pesan tersebut berarti Play tidak dapat menemukan lib jnotify, sehingga Play akan menggunakan proses internal untuk memeriksa perubahan file (yaitu mengkompilasi ulang dan memulai ulang aplikasi ketika ada perubahan file). Ini seharusnya tidak menghentikan Anda untuk menggunakan kerangka kerja ini, tetapi kinerjanya mungkin lebih buruk dibandingkan dengan jnotify.

Apa pun pilihannya, Anda dapat mengunduh JNotify dari https://sourceforge.net/projects/jnotify/ dan menginstalnya itu (cukup salin jnotify_64bit.dll ke C:\Program Files\Java\jdk1.8.0_111\bin), dan pesan itu akan hilang.

person Salem    schedule 05.01.2017
comment
Sebagai tambahan, di Linux 64-bit: Saya akhirnya mengunduh dari sini: sourceforge.net/projects /jnotify/files/jnotify yang memiliki direktori Linux 64-bit dengan file libnotify.so yang harus saya gunakan sehubungan dengan file jar jnotify. (Tautan github FYI yang membawa saya ke halaman itu: github.com/aerofs/jnotify) - person manyways; 27.08.2017
comment
@manyways Jawaban yang dijelaskan secara detail akan lebih bermanfaat bagi pengguna linux - person Spektakulatius; 29.08.2017