Skip to content
Global keyboard and mouse listeners for Java.
Java C Dockerfile
Branch: 2.1
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docker Adding Dockerfile to create a cross-compiler docker image. Sep 21, 2019
src Replace j9 deprecated newInstance with doc suggested replacement (#260) Sep 21, 2019
targets Adding Dockerfile to create a cross-compiler docker image. Sep 21, 2019
wiki @ 0619d33 Wiki update Sep 21, 2019
.gitignore Update gitignore and added a little more logging to libuiohook. Jul 30, 2017
.gitmodules Updated wiki Jan 18, 2016
AUTHORS Update AUTHORS Apr 28, 2018
COPYING.LESSER.md Finished migrating libuiohook to a separate project. Dec 9, 2013
COPYING.md Finished migrating libuiohook to a separate project. Dec 9, 2013
ChangeLog.md Updated the change log. Jan 26, 2017
Dockerfile Adding Dockerfile to create a cross-compiler docker image. Sep 21, 2019
NEWS.md Bug fixes and cleanups. Nov 2, 2015
README.md
build.num Update build.num Oct 28, 2015
build.xml Adding Dockerfile to create a cross-compiler docker image. Sep 21, 2019
cross.build.xml Adding build fixes. Jul 25, 2019

README.md

Maven Central

About

JNativeHook is a library to provide global keyboard and mouse listeners for Java. This will allow you to listen for global shortcuts or mouse motion that would otherwise be impossible using pure Java. To accomplish this task, JNativeHook leverages platform-dependent native code through Java's native interface to create low-level system-wide hooks and deliver those events to your application.

The following events are available via their respective listeners.

  • Key Press Events
  • Key Release Events
  • Key Typed Events
  • Mouse Down Events
  • Mouse Up Events
  • Mouse Click Events
  • Mouse Move Events
  • Mouse Drag Events
  • Mouse Wheel Events

In addition to global event listners, this library has the ability to post native events back to the native operating system.

Licensing

JNativeHook is covered under both the GNU General Public and GNU Lesser General Public Licenses as the latter is an extension of the former granting you additional distribution rights. As I understand it, you may use this library in proprietary projects so long as it remains an external library with the same binary interface. You may modify the source code of this library to fulfill a propritary need, so long as that source code is made public under the aforementioned terms. Please consult with a licenced attorney if you have licence compatibility questions or concerns.

Download

Binary distribution for JNativeHook can be found at the releases section of the project page. Maven users can use the <groupId>com.1stleg</groupId> and <artifactId>jnativehook</artifactId> to include this library automatically. The nightly builds can be found at the maven snapshot repository.

Software and Hardware Requirements

  • Java 1.5 - 1.8
  • 256 MB of RAM
  • Apple OS X 10.5 - 10.12
    • i586, amd64
    • Enable Access for Assistive Devices
  • Windows 2000 - 10
    • i586, amd64
  • X11 Linux
    • i586, amd64, arm6j
    • libxkbfile.so.1
    • libxkbcommon-x11.so.0
    • libxkbcommon.so.0
    • libX11-xcb.so.1
    • libX11.so.6
    • libxcb.so.1
    • libXinerama.so.1
    • libXt.so.6
    • libXtst.so.6
    • libc.so.6
    • libxcb-xkb.so.1
    • libdl.so.2
    • libXau.so.6
    • libXdmcp.so.6
    • libXext.so.6
    • libSM.so.6
    • libICE.so.6
    • libbsd.so.0
    • libuuid.so.1
    • librt.so.1
    • libpthread.so.0

Donate

If you have found this library useful, please consider making a donation. Donate

Compiling Instructions

Detailed instructions to compile from source are available in the wiki.

Demo Applicaiton

The graphical example application was created to provided a real-time demonstration of raw output for all available native events. To run the application simply execute the jar file provided. Source code available at src/java/org/jnativehook/example/NativeHookDemo.java.

Example Code

Additional Information

Up to date source code and documentation available at: https://github.com/kwhat/jnativehook/

You can’t perform that action at this time.