
                    GLPK Java Native Interface (JNI)

1.1 What is GLPK JNI?
  GLPK JNI is Java binding for GLPK package. It allows Java programs to
  utilize GLPK in solving linear and mixed integer programs while solving
  problems of linear or discrete optimization.

1.2 What does it consist from?
  GLPK JNI as any JNI interface consists of two parts: Java encapsulating
  classes and C-style native code gluing Java to C-style API.
  Java classes after compilation get to one JAR file: glpk.jar.
  C file compiles into shared library libglpk_jni.so (glpk_jni.dll for Windows
  system).
  So at run-time only these two files (glpk.jar and libglpk_jni.so) are needed.

1.3 How to compile it?
  1.3.1 Prerequisites
    1.3.1.1 Java Development Environment
      First of all you need JDK installed. Any Sun JDK-1.3.1 or higher should
      be enough (http://java.sun.com). Also any other Java Development
      Environment (like Symantec, Kaffe, etc) should work although author
      didn't test this.
    1.3.1.2 ANT Java build tool
      Is recommended but not required. It makes things convenient.
  1.3.2 Java
    Classes can be compiled using standard ANT Java build tool. In this case
    just run command "ant" from folder "java" where Java files are located.
    "ant" command will leave you glpk.jar in the same folder.
    If you don't have ANT and don't want to install it following commands
    will do the same:
      javac *.java
      mkdir -p org/gnu/glpk
      mv *.class org/gnu/glpk
      jar cf glpk.jar org
      rm -rf org
  1.3.3 C
    Run "make" from folder "c". It should leave libglpk_jni.so in there.

1.4 How to install GLPK JNI
  We are assuming that environment variable $JAVA_HOME contains the location of
  your Java Development Environment (as it always should when Java installed).

  To install GLPK JNI:
   copy glpk.jar to $JAVA_HOME/jre/lib/ext
   copy libglpk_jni.so to $JAVA_HOME/jre/lib/i386

1.5 What functions are supported?
  All GLPK API functions in "lpx_" namespace are supported. Their respective
  names and declarations are reformatted to fit the Java programming style.
  You get full functionality of GLPK package available for Java program.
  In addition added functionality allowing to disable printouts from
  the GLPK library.
