Files
jlibloader/readme.md
2012-08-06 14:11:14 +10:00

64 lines
1.7 KiB
Markdown
Executable File

Provides Java bindings for various native APIs.
# Available bindings
## Generic
* Get and set UNIX file mode.
* Get PID of current process.
## Terminal and console
These bindings work for both the UNIX terminal and Windows console:
* Determine if stdout/stderr are attached to a terminal.
* Query the terminal size.
* Switch between bold and normal mode on the terminal.
* Change foreground color on the terminal.
* Move terminal cursor up, down, left, right, start of line.
* Clear to end of line.
Currently ported to OS X, Linux, Solaris and Windows. Tested on:
* OS X 10.7.4
* Ubunutu 12.04 (amd64)
* Solaris 11 (x86)
* Windows 7 (amd64)
# Building
You will need a very recent snapshot of [Gradle](http://www.gradle.org/).
## Ubuntu
The g++ compiler is required to build the native library. You will need to `g++` package for this. Generally this is already installed.
You need to install the `libncurses5-dev` package to pick up the ncurses header files. Also worth installing the `ncurses-doc` package too.
## Windows
You need to install Visual studio, and build from a Visual studio command prompt.
## OS X
The g++ compiler is required to build the native library. You will need to install the XCode tools for this.
## Solaris
For Solaris 11, you need to install the `development/gcc-45` and `system/header` packages.
# TODO
* Package up native lib into self-extracting jar.
* Fix TERM=dumb
* Split out separate native library for terminal handling.
* String names for errno values.
* Split into multiple projects.
* Build 32 bit and 64 bit libraries.
* Test on IBM JVM.
* Convert to c.
* Thread safety.
* Windows: flush System.out or System.err on attribute change.
* Solaris: fix unicode file name handling.