
                    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.

  Most of the work was done by:
    Yuri Victorovich, Software Engineer, yuri@gjt.org.

  A clean Makefile setup (for gcc/gmake) and user-installable
  Java callbacks were developed by:
    Chris Rosebrugh, cpr@pobox.com

1.2 What does it consist of?

  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.
  So at run-time only these two files (glpk.jar and libglpk_jni.so) are needed.

  Currently, Windows is not supported in the Makefiles.

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 authors
      didn't test this.

    1.3.1.2 Environment variable

      The environment variable $JAVA_HOME should be set to the location of
      the Java Development Environment

  1.3.2

      To compile, from the java-binding/ directory:
      % make all

  1.3.3

      To test, from the java-binding/ directory:
      % make sample

1.4 How to install GLPK JNI

   From the java-binding/ directory:
   % make install

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.
