KnowHow_EclipseForProcessing
[print]
[en ]

Table of contents



Voraussetzungen

Dieses Tutorial wurde für OS X 10.5.x geschrieben, es darf aber davon ausgegangen werden, dass es auch für OS X 10.4 gültigkeit besitzt.

Bevor mit der Konfiguration von Eclipse begonnen werden kann, sollte Eclipse auf dem Rechner installiert sein: download -> Eclipse IDE for Java EE Developers

Zusätzlich sollten alle Leerschläge im Pfad zu den Processing-Libraries vermieden werden. Gehe dazu in den Finder und korrigiere den Processing 01xx Ordener wie folgt:
Klick für Höhere Auflösung


Das selbe gilt auch für Processing >= 149. Die Spaces müssen weg!


Systemkonfiguration


Aufstarten

beim Aufstarten fragt Eclipse nach dem Workspace, bzw. dem Ort an dem Eclipse die Projektfiles anlegen soll. Wähle dafür einen geeigneten Ordner, der auch regelmässig einem Backup unterzogen wird um keine Daten zu verlieren.

öffne die Preferences in Eclipse
Klick für Höhere Auflösung


UserLibrary

Als erster Schritt sagen wir Eclipse wo die Processing-Libraries zu finden sind.
gehe zu Java->Build Path->User Libraries
Klick für Höhere Auflösung

und drücke "new..."

Gib einen passenden Namen ein, wie z.B. Processing
Klick für Höhere Auflösung

und drücke "ok".

Ab Processing 0149 wurde eine neue Orderstruktur eingeführt. Processing ist nun eine eigene Applikation und alle Bibliotheken, auf die wir für diese Aufgabe zugreifen müssen liegen innerhalb der Applikation. Über den normalen Weg gibt es keinen Zugriff auf diese JAR's, aber wir können uns mit einem Trick behelfen. Wechsle in den Finder und navigiere zu der Processing-Applikation. Öffne das Kontext-Menü (Rechte Maustaste) und wähle "Paketinhalt zeigen".

Klick für Höhere Auflösung


Ein neues Finder-Fenster öffnet sich und zeigt den Contents-Ortner. Gehe nun zu Contents/Resources/Java und ziehe den Java-Ordner auf die Linke Seite des Finder-Fensters. Auf diese Weise existiert nun ein Shortcut, mittels dem wir von Eclipse aus wieder auf die JAR's zugreifen können.

Klick für Höhere Auflösung


Wechsle nun wieder auf zu Eclipse.

Nun wähle den neuen Eintrag mit dem Namen "Processing" an und wähle "Add JARs.."
Klick für Höhere Auflösung


Für Processing >= 149

[+]

Für Processing < 149

[+]

Installation von JRE1.5

Da Processing unter Java 1.5 läuft, muss dies nun auch Eclipse gesagt werden.

Weiter in der Preferences gehe zu Java->Installed JREs.
Klick für Höhere Auflösung

Sollte hier noch kein Eintrag für JRE1.5 (das steht für JavaRuntimeEnvironment) geben, dann muss dies noch nachgeholt werden:
Drücke auf "Add..", wähle "MacOS X VM".
Kopiere folgende Zeile:

/System/Library/Frameworks/JavaVM.framework/Versions/


, setzte sie in das Feld von "JRE home:" und drücke auf "Directory..". Wähle nun den Ordner "1.5.0" (ACHTUNG, den Ornder und nicht eine Verknüpfung.) und dessen Unterordner "Home" und drücke "Choose".

Gib unter "JRE name:" einen bezeichnenden Name, wie z.b. "JRE 1.5" und drücke "Finish". Wähle diesen neuen Eintrag an als Default JRE.

Drücke nun "OK" im Preferences - Fenster, die Systemkonfiguration ist damit beendet. Diese Schritte müssen nur einmal durchgeführt werden. Wir kommen nun zum Aufsetzen eines Projektes.

Installation des ProcessingExporter-Plugins

Um wie bei Processing unsere Programme zu exportieren, brauchen wir noch ein Plugin, das wir Eclipse zu installieren haben. Das geht ganz einfach:

download die neuste Version (schau, dass sie mit deiner Eclipse-installation kompatibel ist) und speichere das JAR-File unter
Applications(oder Programme)/eclipse/plugins.

Fertig. Nach einem Neustart von Eclipse taucht in der Funktionsleiste ein Processing-Symbol auf. Wie dieser Exporter zu gebrauchen ist wird weiter unten beschrieben.

Projektkonfiguration


Projekterstellen


Gehe zu File->New->Project..
Klick für Höhere Auflösung


wähle unter Java->Java Projekt
Klick für Höhere Auflösung


Gib einen passenden Namen ein, wie z.B. "ProcessingPatch"
Klick für Höhere Auflösung

drücke "Next >"

wähle "Libraries" und drücke auf "Add Library.."
Klick für Höhere Auflösung


wähle "User Library"
Klick für Höhere Auflösung

drücke "Next >"

wähle "Processing" (oder den namen, den Du oben in der Systemkonfiguration eingegeben hast)
Klick für Höhere Auflösung

und drücke "Finish"

Drücke nochmals "Finish"

Nun wurde ein neues Eclipse Projekt angelegt. Es kann links im Package Explorer gesehen werden. Noch ist es leer, aber das werden wir nun gleich ändern.

Java Rahmenprogram erstellen

Ein Rahmenprogram in diesem Fall ist eine Java Klasse, die sich zwar kompilieren lässt, und auch läuft, aber keinen Inhalt hat, also nur einen Rahmen darstellt.

gehe im Package Explorer mit einem maus-rechts-klick ins kontextmenü und wähle "New->Class"
Klick für Höhere Auflösung


gib einen passenden Namen ein, wie z.B. "AlphaMask"
Klick für Höhere Auflösung

drücke auf "Finish"

Nun wurde ein neues File mit dem Namen "AlphaMask.java" erstellt.

Darin stehen folgende Zeile:

public class AlphaMask {

}


ersetze diese mit folgenden Zeilen:

import processing.core.*;


public class AlphaMask extends PApplet{

	//hier die variabel definitionen...
	
	//setup - funktion
	public void setup(){
		;
	}
	
	//draw - funktion
	public void draw(){
		;
	}
	
}


Sollte die von dir erstellte Klasse anders heissen, dann musst du den namen nach "public class ...." ganz oben ersetzen.

Um nun zum ersten mal ein Programm laufen zu lassen, kopieren wir das AlphaMask Beispiel aus Processing. File->Examples->Basics->Image->Alphamask

der in Eclipses Rahmenprogram hineinkopierte Code sollte nun so aussehen:

import processing.core.PApplet;

public class AlphaMask extends PApplet{

	//hier die variabel definitionen...
	PImage img;
	PImage maskImg;
	
	//setup - funktion
	public void setup(){
		  size(200,200);
		  img = loadImage("test.jpg");
		  maskImg = loadImage("mask.jpg");
		  img.mask(maskImg);
	}
	
	//draw - funktion
	public void draw(){
		  background((mouseX+mouseY)/1.5);
		  image(img, 50, 50);
		  image(img, mouseX-50, mouseY-50);
	}
	
}


In Eclipse gibt sich nun folgendes Bild:
Klick für Höhere Auflösung


Eclipse gibt verschieden Fehler aus. Die meisten davon sind einfach zu beheben. Wir müssen Eclipse sagen, welche Bibliotheken importiert werden müssen. Dies geschieht in Processing zwar automatisch, dort zeigt es die Fehler aber auch erst an, wenn das Program gestartet wird.

Um eine neue Bibliothek zu importieren muss nun zuoberst ein weiterer Import-Befehl angegeben werden:

import processing.core.*;


wenn wir diese Zeile von Hand eingeben, werden wir sehen, dass uns Eclipse nach der eingabe des ersten Punktes eine Auswahl von verschiedenen Unterbibliotheken liefert. Wir wählen "core" und dann ein Stern.

Und mit einem Schlag sind die meisten Fehler schon weg. Eclipse weiss nun, woher die entsprechenden Infos zu holen.

Nun gibt es immer noch einen Fehler:
Klick für Höhere Auflösung

Wenn wir nun mit dem Mauszeiger über das mit rot unterwellte wort "background" - einem funktionsaufruf - legen, zeigt sich eine Auswahl von Tips, die uns Eclipse vorschlägt um das Problem zu lösen. Wir folgen nun gleich den ersten Vorschlag: Cast argument 1 to int
Das bedeut wir müssen die Berechnung kurz bevor sie der funktion übergeben wird in ein int umwandeln. Das tun wir in dem wir ein sogennantes Casting machen:

Aus "(mouseX+mouseY)/1.5" wird "(int)((mouseX+mouseY)/1.5)". Nun findet Eclipse keine Fehler mehr.

Jetzt müssen wir das Program noch compilieren.

Dazu müssen wir noch eine Run-Konfiguration machen

Run-Konfiguration

Suche in der Funktionsleiste nach dem grünen Play-Symbol und klicke auf das kleine schwarze Dreieck daneben. Wähle "RUN Configurations..."
Klick für Höhere Auflösung


Wähle "Java Application" an und rufe mit der rechten Maustaste das Kontext menu auf. Wähle "New"
Klick für Höhere Auflösung


Wähle einen Passenden Namen, wie z.B. "AlphaMask". In der Main class: sollte processing.core.PApplet stehen.
Klick für Höhere Auflösung


Wähle nun "Arguments"
Klick für Höhere Auflösung

gib unter Program arguments den Namen deiner Haupt-Klasse (die Klasse, die PApplet extendet) ein.

gib unter "VM arguments" folgenden Code ein:

-Djava.library.path=/Applications/Processing0148/libraries/opengl/library:/Applications/Processing0148/libraries/serial/library


bzw. für Processing >= 149 könnte der Pfad so oder ähnlich aussehen:
-Djava.library.path=/Applications/Processing0154.app/Contents/Resources/Java/libraries/opengl/library:/Applications/Processing0154.app/Contents/Resources/Java/libraries/serial/library:/Applications/Processing0154.app/Contents/Resources/Java



WICHTIGER HINWEIS: Dies bewirkt, dass die JVM beim starten in diesen Ordnern nach sogenannten "nativen" Bibliotheken sucht. "native" Bibliotheken braucht es, damit Java für bestimmte Funktionen, auf die es im Betriebssystem zugreiffen will, auch zugreiffen kann, die jedoch von Betriebssystem zu Betriebssystem unterschiedlich zu handhaben sind. Solltet Ihr also Externe Libraries haben, in denen mehr als nur *.jar-Files stehen, ist es angebracht diesen Parameter zu ergänzen. Die oben angegebene Zeile muss unter Umständen an die eigene installation angepasst werden, da der Pfad abweichen könnte.

Damit kann nun "Apply" und "Run" gedrückt werden. Das Program wird nun kompiliert und ausgefuhrt und .... wirft wieder einen fehler aus:

The file "test.jpg" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
The file "mask.jpg" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
Exception in thread "Animation Thread" java.lang.NullPointerException
	at AlphaMask.setup(AlphaMask.java:15)
	at processing.core.PApplet.handleDraw(PApplet.java:1377)
	at processing.core.PApplet.run(PApplet.java:1305)
	at java.lang.Thread.run(Thread.java:613)


Natürlich sind die vom Program gebrauchten Files noch nicht verfügbar. Dazu müssen wir nun erst einen neuen Ordner kreieren

Wir wählen dazu im "Package Explorer" das projekt an und gehen ins Kontextmenu. New -> Folder.

Benennen wir den neuen Folder "data
Klick für Höhere Auflösung


Nun gilt es noch die beiden Files in diesen Folder via Drag n Drop (einzeln!!) hinein zu kopieren.
WICHTIGER HINWEIS: Zieht die Files über Eclipse in den data-Ordner und nicht via Finder(oder File-Explorer), denn sonst weiss Eclipse nicht, dass da Files sind und wirft immer wieder den selben Fehler.

Und das Program neu zu starten. Es sollte nun so wie gewohnt funktionieren.

Export eines Applets oder einer Applikation

Drücke auf das zuvor installierte ProcessingExporter Symbol in deiner Funktionsleiste. Ein Fenster öffnet sich. Wähle erst das Projekt aus (in diesem Fall "ProcessingPatch") anschliessend das Program ("AlphaMask") und entscheide, ob es ein Applet oder eine Applikation sein soll. Wenn es als Applikation export wird, erstellt der Exporter drei Ordner für die drei Betriebssysteme Windows, OSX und Linux. Da die Applikation auch die Bilder daten braucht, muss der Ordner "data" noch von Hand in die drei Ordner kopiert werden. Das selbe gilt für das Applet.








pic

thumbnail
905_Pic062.jpg