|
maybites
|
||||||||||||||||||||||||||||||||||||||||||||||||
Sidebar |
KnowHow_EclipseForProcessing
Table of contentsVoraussetzungenDieses 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:
Das selbe gilt auch für Processing >= 149. Die Spaces müssen weg! SystemkonfigurationAufstartenbeim 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
UserLibraryAls erster Schritt sagen wir Eclipse wo die Processing-Libraries zu finden sind.gehe zu Java->Build Path->User Libraries
und drücke "new..." Gib einen passenden Namen ein, wie z.B. Processing
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".
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.
Wechsle nun wieder auf zu Eclipse. Nun wähle den neuen Eintrag mit dem Namen "Processing" an und wähle "Add JARs.."
Für Processing >= 149[+]Für Processing < 149[+]Installation von JRE1.5Da Processing unter Java 1.5 läuft, muss dies nun auch Eclipse gesagt werden.Weiter in der Preferences gehe zu Java->Installed JREs.
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-PluginsUm 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. ProjektkonfigurationProjekterstellenGehe zu File->New->Project..
wähle unter Java->Java Projekt
Gib einen passenden Namen ein, wie z.B. "ProcessingPatch"
drücke "Next >" wähle "Libraries" und drücke auf "Add Library.."
wähle "User Library"
drücke "Next >" wähle "Processing" (oder den namen, den Du oben in der Systemkonfiguration eingegeben hast)
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 erstellenEin 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"
gib einen passenden Namen ein, wie z.B. "AlphaMask"
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:
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:
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-KonfigurationSuche in der Funktionsleiste nach dem grünen Play-Symbol und klicke auf das kleine schwarze Dreieck daneben. Wähle "RUN Configurations..."
Wähle "Java Application" an und rufe mit der rechten Maustaste das Kontext menu auf. Wähle "New"
Wähle einen Passenden Namen, wie z.B. "AlphaMask". In der Main class: sollte processing.core.PApplet stehen.
Wähle nun "Arguments"
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
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 ApplikationDrü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. |
Sidebar |
||||||||||||||||||||||||||||||||||||||||||||||
|
Powered by TikiWiki CMS/Groupware v2.3 -Arcturus-
[ Execution time: 0.83 secs ] [ Memory usage: 11.87MB ] [ 72 database queries used in 0.0 secs ] [ GZIP Enabled ] [ Server load: ? ]
|
||||||||||||||||||||||||||||||||||||||||||||||||