Kapitel 6. Kompilieren von Java Anwendungen

Die HIPL Software enthält ausserdem eine Java-Wrapper-Bibiliothek um Zugriff auf den libinet6 Resolver zu ermöglichen. Die Bibiliothek heißt "jip" und befindet sich unter "path-to-hipl/jip". Die Verwendung der Java Bibliothek setzt einen funktionierenden HIP Socket Handler, wie bereits beschieben, voraus.

Sie benötigen entweder Blackdown oder Sun java jdk 1.4.x oder neuer zum Kompilieren von jip. Kompilieren mit Java 1.3 wird nicht funktionieren. Die Installation geht von Blackdown 1.4 JDK aus. Wenn Sie SUN JDK verwenden setzen sie die Umgebungsvariable "JAVA_HOME" auf Ihr Java Installationsverzeichnis.

Kompilieren von libinet6.so und jip:

          # cd path-to-hipl/libinet6
          # cd path-to-hipl/libinet6
          # make libinet6.so
          # cd ../jip
          # make
        

Libinet6 wird nun automatisch mit kompiliert. Das Ergebnis jip.jar, des letzen Kommandos, können sie verwenden um HIP in ihren Java-Anwendungen zu ermöglichen. Um die Javadoc Dokumentation zu erstellen rufen Sie zusätzlich make apidoc auf. Die Dokumentation finden sie anschließend unter path-to-hipl/doc/jip-api.

Es befinden sich drei Beispiel Java-Anwendungen im Verzeichnis test, welche Sie gesondert kompilieren müssen. Verwenden Sie folgende Prozedur:

          # cd ../test
          # javac -classpath ../jip/jip.jar HipClient.java
          # javac -classpath ../jip/jip.jar HipUserkeyClient.java
          # javac -classpath ../jip/jip.jar HipServer.java
        

Sie sollten bereits Ihre Netzwerktestumgebung, wie unter Abschnitt "HIP-Verbindung zwischen zwei Hosts testen" beschrieben, eingerichtet haben. Ggf. wird hipd ihre öffentlichen Schlüssel erzeugen, darüber brauchen Sie sich keine Gedanken machen.

Um ihre bisherigen Java Anwendungen mit der HIP Funktionalität auszustatten genügt es nicht die Socket eigenschaften zu setzen. Sie müssen entweder sicherstellen, dass der Hostname nur zu IPv6 Adressen aufgelöst wird, oder dass die niemals hostnamen an Methoden in der Socket und ServerSocket Klasse senden. Letzteres kann durch die Verwendung der HipAddress Klasse, wie im Beispiel demonstriert, sichergestellt werden.

Verwenden der Beispiel Anwendung wie folgt:

          crash # cd path-to-hipl/test
          crash # ./java HipServer 12345
          oops # cd test
          oops # ./java HipClient crash 12345 54321
          <beliebigen Text eingeben und Enter drücken>
        

Das Shell-Skript test/java enthält einige LD_PRELOAD-, Bibiliotheken- und ClassPath informationen, welche zum ausführen der HIP-Java Anwendungen notwendig sind.

Die Klasse HipUserkeyClient ist andererseits die gleiche wie die HipClient Klasse, ausgenommen ihr viertes Argument. Dies ist eine Datei aus der die anwendungsspezifischen Endpoint Informationen geladen werden sollen.