Wenn Ihr Port ein Java™ Development Kit (JDK™)
benötigt, entweder zum Bauen, zur Laufzeit oder
sogar, um das Distfile auszupacken, dann sollten Sie
USE_JAVA
setzen.
Es gibt mehrere JDKs in der Ports-Sammlung– von verschiedenen Anbietern und in verschiedenen Versionen. Wenn Ihr Port eine bestimmte dieser Versionen benötigt, können Sie definieren welche. Die aktuelle Version ist java/jdk16.
Variable | Bedeutung |
---|---|
USE_JAVA | Sollte definiert sein, damit die übrigen Variablen irgendeinen Effekt haben. |
JAVA_VERSION | Durch Leerzeichen getrennte Liste von geeigneten
Java-Versionen für den Port. Ein optionales
"+" ermöglicht die Angabe eines
Bereiches von Versionen (mögliche Werte:
1.5[+] 1.6[+] 1.7[+] ). |
JAVA_OS | Durch Leerzeichen getrennte Liste von geeigneten
JDK-Port-Betriebssystemen für den Port. (erlaubte
Werte: native linux ). |
JAVA_VENDOR | Durch Leerzeichen getrennte Liste von geeigneten
JDK-Port-Anbietern für den Port. (erlaubte Werte:
freebsd bsdjava sun openjdk ). |
JAVA_BUILD | Bedeutet, falls gesetzt, dass der ausgewählte JDK-Port zu den Build-Abhängigkeiten des Ports hinzugefügt werden soll. |
JAVA_RUN | Bedeutet, falls gesetzt, dass der ausgewählte JDK-Port zu den Laufzeit-Abhängigkeiten des Ports hinzugefügt werden soll. |
JAVA_EXTRACT | Bedeutet, falls gesetzt, dass der ausgewählte JDK-Port zu den Extract-Abhängigkeiten des Ports hinzugefügt werden soll. |
Das Folgende ist eine Liste aller Variablen, die ein
Port bekommt, nachdem er USE_JAVA
gesetzt hat:
Variable | Wert |
---|---|
JAVA_PORT | Der Name des JDK-Ports (z.B.
'java/diablo-jdk16' ). |
JAVA_PORT_VERSION | Die volle Version des JDK Ports (z.B.
'1.6.0' ). Wenn Sie nur die ersten
beiden Stellen dieser Versionsnummer benötigen,
benutzen Sie
${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} . |
JAVA_PORT_OS | Das vom JDK-Port benutzte Betriebssystem (z.B.
'native' ). |
JAVA_PORT_VENDOR | Der Anbieter des JDK-Ports (z.B.
'freebsd' ). |
JAVA_PORT_OS_DESCRIPTION | Beschreibung des vom JDK-Port benutzten
Betriebssystems (z.B.
'Native' ). |
JAVA_PORT_VENDOR_DESCRIPTION | Beschreibung des Anbieters des JDK-Ports (z.B.
'FreeBSD Foundation' ). |
JAVA_HOME | Pfad zum Installationsverzeichnis des JDK (z.B.
'/usr/local/diablo-jdk1.6.0' ). |
JAVAC | Pfad zum Java-Compiler, der benutzt werden soll
(z.B. '/usr/local/diablo-jdk1.6.0/bin/javac' . |
JAR | Pfad zum jar -Werkzeug, das
benutzt werden soll
(z.B.''/usr/local/diablo-jdk1.6.0/bin/jar oder
'/usr/local/bin/fastjar' ). |
APPLETVIEWER | Pfad zum appletviewer -Werkzeug
(z.B. '/usr/local/diablo-jdk1.6.0/bin/appletviewer' ). |
JAVA | Pfad zur java Binärdatei.
Benutzen Sie dies, um Java-Programme auszuführen
(z.B.'/usr/local/diablo-jdk1.6.0/bin/java' ). |
JAVADOC | Pfad zum
javadoc -Werkzeug. |
JAVAH | Pfad zum javah -Programm. |
JAVAP | Pfad zum javap -Programm. |
JAVA_KEYTOOL | Pfad zum keytool -Werkzeug. |
JAVA_N2A | Pfad zum
native2ascii -Werkzeug. |
JAVA_POLICYTOOL | Pfad zum policytool Programm. |
JAVA_SERIALVER | Pfad zum
serialver -Werkzeug. |
RMIC | Pfad zum RMI Stub/Skeleton-Generator,
rmic . |
RMIREGISTRY | Pfad zum RMI Registry-Werkzeug,
rmiregistry . |
RMID | Pfad zum RMI Daemon rmid . |
JAVA_CLASSES | Pfad zum Archiv, das die JDK-Klassendateien
enthält, ${JAVA_HOME}/jre/lib/rt.jar . |
Sie können das java-debug
make-Target benutzen, um Information zum Debuggen
Ihres Ports zu erhalten. Es wird die Werte vieler
der obenangegebenen Variablen anzeigen.
Zusätzlich sind die folgenden Konstanten definiert, damit alle Java-Ports auf eine konsistente Art installiert werden können:
Konstante | Wert |
---|---|
JAVASHAREDIR | Das Basis-Verzeichnis für alles, was mit Java
zusammenhängt. Standardmäßig
${PREFIX}/share/java . |
JAVAJARDIR | Das Verzeichnis, wohin JAR-Dateien installiert
werden sollen. Standardmäßig
${JAVASHAREDIR}/classes . |
JAVALIBDIR | Das Verzeichnis, in dem JAR-Dateien, die von
anderen Ports installiert wurden, liegen.
Standardmäßig
${LOCALBASE}/share/java/classes . |
Die entsprechenden Einträge sind sowohl in
PLIST_SUB
(dokumentiert in
Abschnitt 7.1, „Änderungen an pkg-plist
mit
Hilfe von make-Variablen“) als auch in
SUB_LIST
definiert.
Wenn der Port mit Apache Ant kompiliert werden soll,
muss er USE_ANT
setzen. Ant wird dann
als das sub-make-Kommando betrachtet. Wenn kein
do-build
-Target vom Port definiert ist,
wird eine Standardvorgabe benutzt, die einfach Ant
entsprechend MAKE_ENV
,
MAKE_ARGS
und
ALL_TARGET
aufruft. Das ähnelt dem
USE_GMAKE
-Mechanismus, der in Abschnitt 6.3, „Build-Mechanismen“ dokumentiert ist.
Wenn Sie eine Java-Bibliothek portieren, sollte Ihr Port
die JAR-Datei(en) in ${JAVAJARDIR}
installieren, und alles andere unter
${JAVASHAREDIR}/${PORTNAME}
(ausgenommen die Dokumentation - siehe unten). Um die
Größe der Packlistendatei zu reduzieren,
können die JAR-Datei(en) direkt im
Makefile
angegeben werden. Benutzen
Sie einfach die folgende Anweisung (wobei
myport.jar
der Name der JAR-Datei ist,
die als Teil des Ports installiert wird):
PLIST_FILES+= %%JAVAJARDIR%%/myport.jar
Beim Portieren einer Java-Applikation installiert der
Port normalerweise alles unter einem einzigen Verzeichnis
(inklusive seiner JAR-Abhängigkeiten). Die Benutzung
von ${JAVASHAREDIR}/${PORTNAME}
wird in dieser Beziehung dringend empfohlen. Es liegt
im Entscheidungsbereich des Portierenden, ob der Port
die zusätzlichen JAR-Abhängigkeiten unter
diesem Verzeichnis installieren oder direkt die schon
installierten (aus ${JAVAJARDIR}
)
benutzen soll.
Unabhängig von der Art Ihres Ports (Bibliothek
oder Applikation), sollte die zusätzliche Dokumentation
an die gleiche Stelle
installiert werden wie bei jedem anderen Port auch.
Das JavaDoc-Werkzeug ist dafür bekannt einen
unterschiedlichen Satz von Dateien abhängig von der
Version des benutzten JDKs zu erstellen. Für Ports,
die nicht die Benutzung eines bestimmten JDKs vorgeben,
ist es deshalb eine komplexe Aufgabe die Packliste
(pkg-plist
) festzulegen. Dies ist
ein Grund, warum dringend angeraten wird, das
PORTDOCS
-Makro zu benutzen.
Außerdem, selbst wenn Sie den Satz von Dateien,
den javadoc
erzeugen wird,
voraussagen können, die Größe der
resultierenden pkg-plist
befürwortet die Benutzung von
PORTDOCS
.
Der Vorgabewert für DATADIR
ist
${PREFIX}/share/${PORTNAME}
. Es ist
eine gute Idee, DATADIR
für
Java-Ports stattdessen auf
${JAVASHAREDIR}/${PORTNAME}
zu setzen.
In der Tat wird DATADIR
automatisch zu
PLIST_SUB
(dokumentiert in Abschnitt 7.1, „Änderungen an pkg-plist
mit
Hilfe von make-Variablen“) hinzugefügt, d.h. Sie können
%%DATADIR%%
direkt in
pkg-plist
benutzen.
Zu der Frage, ob Java-Ports aus dem Quelltext gebaut werden, oder direkt bereitgestellte binäre Distributionen benutzt werden sollten, gab es, als dies geschrieben wurde, keine definierte Richtlinie. Allerdings ermutigen Mitglieder des FreeBSD Java-Projekts Porter dazu, Ihre Ports aus dem Quelltext kompilieren zu lassen, wann immer dies kein Problem darstellt.
Alle Eigenschaften, die in diesem Abschnitt
präsentiert wurden sind in
bsd.java.mk
implementiert.
Sollten Sie jemals der Meinung sein, dass Ihr Port
ausgefeiltere Java-Unterstützung benötigt,
schauen Sie bitte erst in das
bsd.java.mk CVS Log, weil es normalerweise immer
etwas Zeit braucht bis die neuesten Eigenschaften
dokumentiert sind. Wenn Sie glauben, dass der fehlende
Support auch für viele andere Java Ports nützlich
sein könnte, wenden Sie sich bitte an die
FreeBSD Java Language.
Obwohl es eine java
-Kategorie
für Fehlerberichte gibt, bezieht sich diese auf die
JDK-Portierungsbemühungen des FreeBSD Java-Projektes.
Deshalb sollten Sie Ihren Java-Port in der
ports
-Kategorie einreichen wie bei
jeden anderen Port auch - es sei denn, die Angelegenheit,
die Sie zu klären versuchen, steht in Zusammenhang
entweder mit einer JDK-Implementierung oder
bsd.java.mk
.
Gleichermaßen gibt es eine definierte Richtlinie
für die CATEGORIES
eines Java-Ports,
die in Abschnitt 5.3, „Kategorisierung“ erklärt
wird.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.