Beim Binden der C/C++-Anwendung sind die im Abschnitt „Implementierung einer native Methode in C++" beschriebenen Binder-Optionen zu benutzen.
Mit JENV wird ein Laufzeit-Adapter zur Verfügung gestellt, der zu C/C++ -Anwendungen, die Java über das Invocation-API (Teil des JNI) aufrufen wollen, gebunden werden muss. Dieser Adapter enthält die Funktionen des Invocation-API sowie die Adapter zum threadfesten C- und C++ -Laufzeitsystem und zur threadfesten Socket-Bibliothek.
Der Laufzeit-Adapter liegt in einer optimierten Variante vor. Die Laufzeitsysteme befinden sich in PLAM-Bibliotheken, die Bestandteil des Lieferumfanges von JENV sind:
Für die S390-Variante:
SYSLNK.JENV.110.GREEN-JAVA
Für die X86-Variante:
SKULNK.JENV.110.GREEN-JAVA
Beim Binden einer Anwendung mit diesem Laufzeit-Adapter muss noch beachtet werden, dass er wegen der in Java vorkommenden langen Namen vom LLM-Typ 4 ist. Daher ist unbedingt die Compiler-Option -B llm4 beim Binden zu verwenden. Darüber hinaus ist zu beachten, dass der C-Compiler normalerweise beim Binden automatisch ein CRTE und im C++ -Fall eine Standard-Library bindet. Dies muss verhindert werden, damit keine Konflikte mit dem bereits im Laufzeit-Adapter enthaltenen threadfesten Laufzeitsystem entstehen. Dies wird mit dem Schalter -Kno_link_stdlibs erreicht. Ebenso darf aus gleichem Grund keine Socket-Bibliothek und keine Tools-Bibliothek explizit gebunden werden. Beim Binden dürfen daher niemals die Optionen -lc, -lsocket oder -ltools verwendet werden.
Unter POSIX kann eine C-Anwendung mit JENV folgendermaßen gebunden werden:
export BLSLIB00='$.SYSLNK.JENV.110.GREEN-JAVA' cc -Kno_link_stdlibs -B llm4 -o <program> \ <objekte> -l BLSLIB
Das gebundene Programm kann ohne weitere Vorkehrungen ausgeführt werden, benötigt aber natürlich zu seinem Ablauf ein vollständig installiertes JENV unter dem Standard-Installationspfad. Soll ein anderswo installiertes Java benutzt werden, so muss die Umgebungsvariable JAVA_HOME auf den Installationspfad der Java-Laufzeitumgebung gesetzt werden (siehe Kapitel „Umgebungsvariablen").
Das Kommando cc bindet den POSIX-Bindeschalter implizit dazu. Falls nicht unter der Shell mit Kommando cc gebunden wird, sondern unter der BS2000-Kommandooberfläche mit dem BINDER, so muss dieser Schalter aus $.SYSLNK.CRTE.POSIX dazugebunden werden.
Um mit dem BINDER das erforderliche LLM4-Format zu erhalten, muss, wenn auf einer OSD V3 produziert wird, bei SAVE-LLM der Operand FOR-BS2000-VERSIONS=*FROM-OSD-V4 angegeben werden. Die Objekte sind auch auf der OSD V3 ablauffähig.
Diese Vorgehensweise gilt analog für C++ -Anwendungen, wobei zum Binden das Kommando CC mit den oben angegebenen Optionen zu benutzen ist.
Eine Anwendung, die explizit die C-Schnittstellen der POSIX-Sockets aufruft, darf nicht die Module der Socket-Bibliothek einbinden, sondern muss den Modul LIBSOCKET aus der SYSLNK.JENV.110.GREEN (bzw. SKULNK.JENV.110.GREEN) mit einbinden.