Page tree

Wenn sie zu dieser Seite Bemerkungen haben klicken sie bitte hier: Kontaktformular

Skip to end of metadata
Go to start of metadata

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:

java_home
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:

$HOME/.profile
#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 ...

HelloWorld.java
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.mf
Manifest-Version: 1.0
Codebase: localhost
Permissions: sandbox
Application-Name: Hello World App
Entry-Point: HelloWorld
Main-Class: HelloWorld
jar-Datei erzeugen
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$