---
layout: default
---
[](https://maven-badges.herokuapp.com/maven-central/net.java.jinput/jinput)
[](http://www.javadoc.io/doc/net.java.jinput/jinput)
# Welcome to the Java Input API Project!
The JInput Project hosts an implementation of an API for game controller
discovery and polled input. It is part of a suite of open-source technologies
initiated by the Game Technology Group at Sun Microsystems with intention of
making the development of high performance games in Java a reality.
The API itself is pure Java and presents a platform-neutral
completely portable model of controller discovery and polling.
It can handle arbitrary controllers and returns both human and
machine understandable descriptions of the inputs available.
The implementation hosted here also includes plug-ins to allow
the API to adapt to various specific platforms. These plug-ins
often contain a native code portion to interface to the host system.
## Getting Started
Include dependency in your project:
1. Maven - Easy way
-----
```xml
net.java.jinput
jinput
2.0.8
net.java.jinput
jinput
2.0.8
natives-all
```
You'll also need to add the build plugin in your `build/plugins` section of your pom
```xml
com.googlecode.mavennatives
maven-nativedependencies-plugin
```
2. Build from sources - Experts only
-----
1. Download latest source from [here]({{ site.github.zip_url }}).
2. Build maven root project:
```bash
mvn build .
```
3. Include generated artifacts to your project.
## Usage
```java
/* Create an event object for the underlying plugin to populate */
Event event = new Event();
/* Get the available controllers */
Controller[] controllers = ControllerEnvironment.getDefaultEnvironment().getControllers();
for (int i = 0; i < controllers.length; i++) {
/* Remember to poll each one */
controllers[i].poll();
/* Get the controllers event queue */
EventQueue queue = controllers[i].getEventQueue();
/* For each object in the queue */
while (queue.getNextEvent(event)) {
/* Get event component */
Component comp = event.getComponent();
/* Process event (your awesome code) */
...
}
}
```
[More examples here](https://github.com/jinput/jinput/tree/master/examples/src/main/java/net/java/games/input/example).