Varför kan jag inte skriva till en textfil i voidfunktioner som är "thread"-körda? - Java
Hej!
Jag kör Jnativehook. Det är ett bibliotek för att lyssna av tangentbordet och musen. Biblioteket fungerar både på Linux och Windows. Biblioteket använder sig av älskade C för att kommunicera med hårdvaran direkt.
Men problemet är att jag får ett error när jag kör den.
"
Exception in thread "JNativeHook Dispatch Thread" java.lang.NullPointerException
at java.io.FileOutputStream.<init>(FileOutputStream.java:203)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
at java.io.FileWriter.<init>(FileWriter.java:78)
at excelkungen.Listener.writeState(Listener.java:94)
at excelkungen.Listener.nativeKeyPressed(Listener.java:31)
at org.jnativehook.GlobalScreen$EventDispatchTask.processKeyEvent(Unknown Source)
at org.jnativehook.GlobalScreen$EventDispatchTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"
Det jag vill göra är att skriva till funktionen writeState("KP:" + NativeKeyEvent.getKeyText(e.getKeyCode())); bara för att logga vad jag trycker på. Inget annat!
Biblioteket hittar ni här:
https://github.com/kwhat/jnativehook
Min kod hittar ni här: http://pastebin.com/FYDAken6 - Kolla på rad 25. Varför fungerar det inte? Vadå "NullPointer"? Jag skickar visst något.