Vorbemerkungen
- Java ist eine Umgebung mit deren Hilfe Programme ausgeführt werden können, unabhängig vom verwendeten Betriebssystem.
Hierzu wird ein sogenanntes "Java Runtime Environment (JRE)" benötigt.
Lediglich zur Entwicklung eines Java-Programms wird das "Java Development Kit (JDK)" benötigt. - Die hier gezeigten Infos beruhen auf der Java-Version 8.x
- Als Betriebssystem verwende ich das Apple Betriebssystem macOS Sierra (10.12)
Mit leichten Änderungen sind diese Informationen aber auch auf allen anderen Plattformen verwendbar. - Das fertige Programm wird in eine sogenannte jar-Datei erstellt.
"jar"-Dateien sind nichts anderes als komprimierte zip-Dateien bei denen der Name auf ".jar" geändert wurde.
Dadurch wird es möglich Programme bereitzustellen die aus mehr als 1 Datei bestehen. - Bitte berücksichtigen, dass viele Angaben (u.a. die Klassennamen) case-sensitiv sind.
d.h. es werden Groß- und Kleinbuchstaben unterschieden !!!
HelloWorld ist nicht gleich helloworld.
Installation Java Development Kit (JDK)
Download für das jeweilige Betriebssystem:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
(im hier verwendeten Beispiel für macOS)
Konfiguration der Entwicklungsumgebung
Nach der Installation ist es nicht auf den ersten Blick ersichtlich in welchem Pfad Java installiert wurde.
Die Pfadangaben sind aber wichtig um die Konfiguration abzuschließen.
Unter macOS findet man ein Script das den gewünschten Pfad liefert:
My-MBP:~ dk$ /usr/libexec/java_home /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home My-MBP:~ dk$
Diese Pfadangabe in die entsprechenden Scripte einsetzen:
#Die Ausgabe des Befehls java_home in die Umgebungsvariable JAVA_HOME setzen export JAVA_HOME=`/usr/libexec/java_home` #Die Variable CLASSPATH gibt an in welchen Verzeichnissen nach JAVA-Programmen (.class Dateien) gesucht wird. #Hier muss auch immer das aktuelle Verzeichnis "." enthalten sein. export CLASSPATH=".:$JAVA_HOME/lib" #Durch das setzen des Pfades auf JAVA_HOME/bin wird gewährleistet, dass auch die Tools aus dem JDK verwendet werden #und nicht die Programme anderer JAVA-Installationen auf dem Rechner export PATH=$JAVA_HOME/bin:$PATH
Die Anpassungen der Umgebungsvariablen werden erst nach dem nächsten öffnen eines Terminals wirksam oder wenn man in einer laufenden Terminal-Sitzung den folgenden Befehl ausführt.
My-MBP:~ dk$ cd My-MBP:~ dk$ . ./.profile #Testen ob auch die richtigen Programme gefunden werden. My-MBP:~ dk$ type java java is /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin/java My-MBP:~ dk$ type javac javac is /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin/javac My-MBP:~ dk$
Quelltext zu HelloWorld.java
Wichtig: Der Name der Datei muss dem Klassennamen entsprechen.
Klassenname "HelloWorld" ==> Datei HelloWorld.java
Das Programm hat nur eine einfache Funktion, den Text "Hello, World" auszugeben ...
public class HelloWorld { public static void main(String[] args) { // Prints "Hello, World" in the terminal window. System.out.println("Hello, World"); } }
Java-Programm compilieren
#Zu den Parametern: # -g:none ==> Keine Debuginformationen in die class-Datei aufnehmen # -target 1.8 ==> Die class-Datei wird speziell für die Java-Version 8 erzeugt My-MBP:helloworld dk$ javac -g:none -target 1.8 HelloWorld.java My-MBP:helloworld dk$
Java-Programm ausführen
Bei einfachen Programmen kann man nun bereits ausführen.
My-MBP:helloworld dk$ java HelloWorld Hello, World My-MBP:helloworld dk$
Bei größeren Programmen sollte man eine jar-Datei erzeugen
jar-Datei erzeugen
Um eine jar-Datei zu erzeugen muss man den Inhalt der Datei über eine sogenannte manifest-Datei beschreiben.
U.a. geht es darum den Einstiegspunkt zu finden an dem die Programmausführung beginnt.
Beispiel für eine manifest-Datei
Manifest-Version: 1.0 Codebase: localhost Permissions: sandbox Application-Name: Hello World App Entry-Point: HelloWorld Main-Class: HelloWorld
My-MBP:helloworld dk$ jar cvmf manifest.mf HelloWorld.jar HelloWorld.class Manifest wurde hinzugefügt HelloWorld.class wird hinzugefügt(ein = 341) (aus = 239)(29 % verkleinert) My-MBP:helloworld dk$
jar-Datei ausführen
My-MBP:helloworld dk$ java -jar HelloWorld.jar Hello, World My-MBP:helloworld dk$