kristian / system-hook

Global Keyboard / Mouse Hook for Java applications.
MIT License
270 stars 48 forks source link

Problems with making custom jar #25

Closed AlexHZhou closed 6 years ago

AlexHZhou commented 6 years ago

Hi, I'm want to customize the classes you provided. However, when I export src/main/java (with my changes) from your project as a jar file into my main project as an external jar, I get the error

Exception in thread "main" java.lang.UnsatisfiedLinkError: lib: systemhook-windows-amd64.dll not found in lib directory at lc.kra.system.LibraryLoader.loadLibrary(LibraryLoader.java:86) at lc.kra.system.keyboard.GlobalKeyboardHook.(GlobalKeyboardHook.java:98) at Main.main(Main.java:18)

Additionally, I noticed that in the jar you released, there was a package called lc.kra.system.lib with the systemhook-windows-amd64.dll file that I seem to be missing. Apparently, I cannot copy and paste the content of the jar you gave into the jar I created. How can I fix this?

TLDR: I want to create my own jar because I want to make changes to the classes, but it doesn't seem to be work because the jar is missing a file(?).

p.s. I am using Windows p.p.s I barely have started programming, sorry if these are dumb questions.

kristian commented 6 years ago

Hello, please find the missing libraries on the AppVeyor site linked on the README.md:

https://ci.appveyor.com/project/kristian/system-hook

These are the native libaries you are missing, which is essentially the native counterpart of the Java libary to work. You will have to add them to your "lib" directory in order to make it work. To do so, you either will have to include the files to work workspace directory (e.g. in Eclipse) or you will need to extract & repackage your JAR file. There should be a lot of instructions online how to do that. Hope this helps.

dimitris23bp commented 6 years ago

I have the same issue and I don't even know where to start from. I can't find any dll on the above link. Despite that, the whole procedure with Maven looks enormously difficult since I have to use command line, path and plenty of things I barely know. So, I hope I could just copy and paste the files that I need but I really don't know how to solve the issue @SupaTroopa42 and me are facing. Any further tip for the missing libraries?

Josecaetanofaganello commented 6 years ago

Hi, I'm want to customize the classes you provided. However, when I export src/main/java (with my changes) from your project as a jar file into my main project as an external jar, I get the error

Exception in thread "main" java.lang.UnsatisfiedLinkError: lib: systemhook-windows-amd64.dll not found in lib directory at lc.kra.system.LibraryLoader.loadLibrary(LibraryLoader.java:86) at lc.kra.system.keyboard.GlobalKeyboardHook.(GlobalKeyboardHook.java:98) at Main.main(Main.java:18)

Additionally, I noticed that in the jar you released, there was a package called lc.kra.system.lib with the systemhook-windows-amd64.dll file that I seem to be missing. Apparently, I cannot copy and paste the content of the jar you gave into the jar I created. How can I fix this?

TLDR: I want to create my own jar because I want to make changes to the classes, but it doesn't seem to be work because the jar is missing a file(?).

p.s. I am using Windows p.p.s I barely have started programming, sorry if these are dumb questions.

Just download system-hook-3.2.jar and add to your lib path https://github.com/kristian/system-hook/releases

Ladislav-Luyi commented 5 years ago

Hi, I'm want to customize the classes you provided. However, when I export src/main/java (with my changes) from your project as a jar file into my main project as an external jar, I get the error Exception in thread "main" java.lang.UnsatisfiedLinkError: lib: systemhook-windows-amd64.dll not found in lib directory at lc.kra.system.LibraryLoader.loadLibrary(LibraryLoader.java:86) at lc.kra.system.keyboard.GlobalKeyboardHook.(GlobalKeyboardHook.java:98) at Main.main(Main.java:18) Additionally, I noticed that in the jar you released, there was a package called lc.kra.system.lib with the systemhook-windows-amd64.dll file that I seem to be missing. Apparently, I cannot copy and paste the content of the jar you gave into the jar I created. How can I fix this? TLDR: I want to create my own jar because I want to make changes to the classes, but it doesn't seem to be work because the jar is missing a file(?). p.s. I am using Windows p.p.s I barely have started programming, sorry if these are dumb questions.

Just download system-hook-3.2.jar and add to your lib path https://github.com/kristian/system-hook/releases

thanks for your post it helped me

kristian commented 5 years ago

Just to maybe still clarify this:

All required Windows DLLs are already included in the downloadable JAR files you find at: https://github.com/kristian/system-hook/releases. It should be fine adding these JAR files (or the Maven dependency in that regard) to your classpath and you should be ready to go!

In case you are looking for the DLLs "stand-alone", you can download them from Appveyor, in case you do not like to have them built locally (this could be e.g. desired, in case you don't trust AppVeyor). To download the DLL binaries, go the the "Artifacts" section on AppVeyor:

x86: https://ci.appveyor.com/project/kristian/system-hook/build/job/c0fjtoa6fy63gcwx/artifacts x64: https://ci.appveyor.com/project/kristian/system-hook/build/job/bi47veeklk8bk5qy/artifacts

Hope this helps! Best regards.