Unbuffered input and ANSI output support for Linux, MacOS, or Windows for Java 6+
Go to file
2016-03-21 02:06:29 +01:00
src/dorkbox/inputConsole Added error message if terminal initialization fails 2016-03-21 02:06:29 +01:00
.classpath Changed objectPool package to util 2015-02-03 13:20:36 +01:00
.gitignore Basic setup + adding libraries 2014-10-24 20:38:16 +02:00
.project Updated name 2014-10-24 23:04:10 +02:00
InputConsole.iml updated ide library order 2016-03-12 12:53:53 +01:00
LICENSE Removed libs/dist and tweaks to use the latest ObjectPool 2016-02-10 00:28:19 +01:00
LICENSE.Apachev2 Updated utils, updated license 2014-12-18 20:27:10 +01:00
LICENSE.MIT Updated dist, changed from included src in jar, to separate file 2014-12-30 00:30:31 +01:00
README.md Added dependencies to maven pom. updated readme dependencies 2016-03-11 03:35:58 +01:00

InputConsole

Unbuffered input on the console for java applications.

This small library is very similar to what JLine provides, however it does 4 things very differently:

  1. Only provides unbuffered input.
  • Backspace functionality for line input is preserved.
  • Ctrl-C (SIGINT) is also preserved in windows
  1. Uses native calls via JNA (instead of shell execution) for linux & mac terminal configuration
  2. Supports unsupported teminals (for example, while in an IDE ), so in.read() will still return (a line is split into chars, then fed to consumer). The enter key must still be pressed.
  3. Multi-threaded, intelligent buffering of command input for simultaneous input readers on different threads
  • This is for cross-platform use, specifically - linux 32/64, mac 32/64, and windows 32/64. Java 6+
  • ANSI output to console is also supported, and is required for backspace functionality to work if echo is enabled.
Note: If you use the attached JNA/JAnsi libraries, you **MUST** load the respective
      native libraries yourself, especially with JNA (as the loading logic has
      been removed from the jar)
Note: This project was inspired (and some parts heavily modified) by the excellent 
      JLine library, and includes utility classes/methods from a variety of sources.

We now release to maven!

There is a hard dependency in the POM file for the utilities library, which is an extremely small subset of a much larger library; including only what is necessary for this particular project to function.

This project is kept in sync with the utilities library, so "jar hell" is not an issue. Please note that the util library (in it's entirety) is not added since there are many dependencies that are not necessary for this project. No reason to require a massive amount of dependencies for one or two classes/methods.

<dependency>
  <groupId>com.dorkbox</groupId>
  <artifactId>InputConsole</artifactId>
  <version>2.4</version>
</dependency>

Or if you don't want to use Maven, you can access the files directly here:
https://oss.sonatype.org/content/repositories/releases/com/dorkbox/InputConsole/
https://oss.sonatype.org/content/repositories/releases/com/dorkbox/InputConsole-Dorkbox-Util/

https://oss.sonatype.org/content/repositories/releases/com/dorkbox/ObjectPool/

https://repo1.maven.org/maven2/net/java/dev/jna/jna/
https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/
https://repo1.maven.org/maven2/org/slf4j/slf4j-api/

License

This project is distributed under the terms of the Apache v2.0 License. See file "LICENSE" for further references.