# Java Programmieren auf dem Mac



## PeterK (7. Nov 2010)

Hallo,

ich habe gerade angefangen Wirtschaftsinformatik zu studieren und besitze ein MacBook Pro. Die ersten Stunden Java habe ich schon hinter mir und die ersten Übungen stehen ebenfalls an. Nachdem Java mit dem Mac bereits mitgeliefert wird habe ich gedacht es sollte eigentlich keine Probleme geben. 

Die Vorgabe meines Professors ist, nehmt den Editor (unter Windows) und macht den Rest (Compilieren) über .cmd. Soweit so gut, aber da ich noch ein relativer Neuling weiß ich leider nicht was ich hierfür von Seiten OS X benötige.

.cmd ist bei mir das Terminal, aber was kann ich als normalen Editor benutzen. Ich habe auch bereits den Apple Skript Editor für die Erstellung eines Quellcodes benutzt, jedoch ist bei der Speicherung immer eine Fenster aufgegangen, das mir die Speicherung mit .java verweigerte oder eine Doppelspeicherung mit zusätzlicher Dateiendung anbot (z.b. AppleSkript). 

Meine Frage also... was kann ich machen das meine Dateien nur die Endung .java tragen und sich damit auch übersetzen lassen bzw. was kann ich für ein Programm nutzen. Ich habe schon sehr viele Leute gefragt die Ahnung haben sollten, jedoch habe ich immer nur die Antworten Netbeans oder Xcode bekommen. Meines Wissen sind dies jedoch Programmierumgebungen die wie Eclipse arbeiten und das will ich wie gesagt gerade nicht. Also nochmal, ich benötige einen stinknormalen Editor oder falls ich bereits das richtige Prog verwende einen Tipp warum ich meine Dateien nicht ohne einen weiteren Dateizusatz speichern kann.

Ich setze alle meinen Hoffnungen in euch.

Besten Dank im Voraus.


----------



## XHelp (7. Nov 2010)

Selber Erfahrung habe ich mit Mac nicht, aber: apfelwiki.de Main - Texteditoren unter Mac OS X , google-suche liefert bestimmt genügend Ergebnisse.


----------



## MarderFahrer (8. Nov 2010)

TextWrangler ist ein ganz gutes Freeware Tool und bietet auch Quelltextformatierung für Java Code an.

Wo wir schon bei Formatierung usw sind, warum will der Prof, dass unbedingt mit Simpel Editor und der CMD programmiert wird? Also bei uns wurde damals direkt mit einer IDE im Unterricht entwickelt.
Man hat natürlich von vorne angefangen und kurz einmal die "herkömmlichen" Arten wie compilieren per commandline usw ausprobiert. Damit man das auch mal gesehen hat und weiß, wie die Anfänge waren. Aber ich finde, fürs programmieren geht nichts über eine IDE. Auch als Anfänger.
Die Zusammenhänge von Classpath und Umgebungvariablen kann man auch weiterhin mit der Konsole näherbringen. Aber für das Programmieren an sich finde ich das unnütz unkomfortabel.

Das ist für so als wollte man den Leuten Autofahren beibringen und besteht darauf unbedingt höchstens einen Golf I als Fahrzeug zu benutzen. Weil man da ja schön sehen kann wie der ganze Motor funktioniert. Hilft beim fahrenlernen nur relativ wenig.

Kurz um, in einer IDE wie Eclipse(gibt es auch für Mac) hat man Syntax Highlighting, und Syntax Prüfung. Was bringt es einem wenn man andauernd neu compilieren muss auf der cmd und jedesmal nur einen Fehler beseitigt kriegt?
Tolle Fehler wie z.b "Geschweifte Klammer Zu am if-Statement vergessen" oder "Semicolon hinter Zuweisung vergessen". Also ich empfinde das nicht als "unnötigen Luxus" wenn man auf solche banalen Sachen vom einem Programm hingewiesen wird. Man sollte mit dem eigentlichen Lernen der Sprache doch genug zu tun haben.


----------



## Andi_CH (8. Nov 2010)

MarderFahrer hat gesagt.:


> Wo wir schon bei Formatierung usw sind, warum will der Prof, dass unbedingt mit Simpel Editor und der CMD programmiert wird? Also bei uns wurde damals direkt mit einer IDE im Unterricht entwickelt.
> ...
> Das ist für so als wollte man den Leuten Autofahren beibringen und besteht darauf unbedingt höchstens einen Golf I als Fahrzeug zu benutzen. Weil man da ja schön sehen kann wie der ganze Motor funktioniert. Hilft beim fahrenlernen nur relativ wenig.


So richtig bremsen lernst du halt nur ohne ABS
So richtig Autofahren nur ohne ESD, ASR und was sonst noch gibt

Logisch man ist nicht immer auf der Rennstrecke unterwegs auf der diese System höchstens stören.



MarderFahrer hat gesagt.:


> Kurz um, in einer IDE wie Eclipse(gibt es auch für Mac) hat man Syntax Highlighting, und Syntax Prüfung. Was bringt es einem wenn man andauernd neu compilieren muss auf der cmd und jedesmal nur einen Fehler beseitigt kriegt?


Es geht eben darum einen konzentrierten Arbeitsstil zu erzwingen



MarderFahrer hat gesagt.:


> Tolle Fehler wie z.b "Geschweifte Klammer Zu am if-Statement vergessen" oder "Semicolon hinter Zuweisung vergessen". Also ich empfinde das nicht als "unnötigen Luxus" wenn man auf solche banalen Sachen vom einem Programm hingewiesen wird. Man sollte mit dem eigentlichen Lernen der Sprache doch genug zu tun haben.


Meine Aussage ist immer noch die, dass man zuerst programmieren lernen sollte bevor es an eine Sprache geht ;-) also kann man auch erst einen sauberen Arbeitsstil lernen bevor es in die Tiefe geht.

Das da


```
if (a=b)
   machDies()
else
   machDas();
   machDasInJedemFall();
```

muss man einfach mal selbst falsch gemacht und den Fehler gesucht haben und dann bleibt es auch ;-) (Eclipse würde das jetzt richtig einrücken und damit fällt es auf)

( Beim switch case ohne Break hilft nicht mal Elipse :-( )

Logisch arbeitet man später nicht mehr so, aber wenn man es mal gelernt hat, fällt es einem einfacher gewisse Effekte zu verstehen

Ich habe in den letzten Jahren auch die Nachteile von komplexen IDEs kennen gelernt. Im Rahmen des Nachdiplomstudiums wurde grundsätzlich Eclipse eingesetzt. Jeder Dozent hatte seine liebe Mühe bis endlich alle Studis sein Projekt importiert hatten und es auch kompilierbar war - kaum 2 Installationen auf den Schulrechnern waren gleich und einige arbeiteten mit ihren Privatrechnern. So kamen auch die MAC / Windows typischen Unterschiede dazu.

Also ich begreif den Prof.


----------



## Landei (8. Nov 2010)

MarderFahrer hat gesagt.:


> Tolle Fehler wie z.b "Geschweifte Klammer Zu am if-Statement vergessen" oder "Semicolon hinter Zuweisung vergessen". Also ich empfinde das nicht als "unnötigen Luxus" wenn man auf solche banalen Sachen vom einem Programm hingewiesen wird. Man sollte mit dem eigentlichen Lernen der Sprache doch genug zu tun haben.



Sehe ich auch so. Man kann es auch übertreiben (Blue-J... bäks!), aber wie soll man z.B. die API kennenlernen, wenn einem nicht die IDE anzeigt, welche Funktionen zur Verfügung stehen? Und ich sehe auch keinen didaktischen Wert darin, Adepten mit primitiven Fehlern zu quälen. Das kostet bloß dringend benötigte Motivation.


----------



## MarderFahrer (8. Nov 2010)

> Es geht eben darum einen konzentrierten Arbeitsstil zu erzwingen



Na ja, also für mich gehört zu einem konzentrierten Arbeitsstil, sich Gedanken über den Programmablauf bzw. die Geschäftslogik zu machen. Sich genau zu überlegen was man als nächstes implementiert.

Da sollte man den Kopf schon voll genug haben, sodass ein unabsichtlich vergessenes ";" oder "{" nicht erst beim compilieren gefunden werden sollte, sondern durch einfaches Highlighting angezeigt und schnell berichtigt werden kann.


----------



## Andi_CH (8. Nov 2010)

Für mich auch, aber wir wollen ein lauffähiges Programm am Schluss - diese Leute sollen/wollen Java lernen - das ist ein anderes Ziel.

Erst mal PKW fahren lernen - LKW kommt später ;-)


----------



## XHelp (8. Nov 2010)

Andi_CH hat gesagt.:


> Für mich auch, aber wir wollen ein lauffähiges Programm am Schluss - diese Leute sollen/wollen Java lernen - das ist ein anderes Ziel.
> 
> Erst mal PKW fahren lernen - LKW kommt später ;-)



Frankenstein lebte auch irgendwie... mal da ein wenig Arm, mal hier ein wenig Bein, im großen und ganzen konnte er sich bewegen, aber so richtig Mensch war er nicht, oder?

P.S. ich dachte ich bin in einem anderen Thread, die Aussage passt hier nicht so ganz rein...


----------



## timbeau (8. Nov 2010)

Ich finds nicht schlimm wenn man am Anfang (1. zwei Wochen vll.) mal nur mit Konsole programmiert. Ich hab auch mit vim angefangen und zumindest die rudimentären Grundlagen von Java ohne Eclipse geschrieben. 

Dafür kann ich auch aus dem Kopf eine Main-Methode schreiben auch wnen ich bei eclipse nur main tippen muss.


----------



## Hemme (8. Nov 2010)

Also ich  benutze selbst Mac und ich kann dir wie oben schon gesagt TextWrangler empfehlen.

Aber auch Smultron ist nicht schlecht. Du kannst ja mal beide ausprobieren.


----------



## dehlen (8. Nov 2010)

Das geht auch ganz einfach mit dem vorprogrammierten TextEditor namens TextEdit
Einfach Quellcode reinschreiben als .java speichern und mit terminal compilieren.... nur dabei darauf achten das du im texteditor->Einstellungen und dort dann Reiner Text auswählst weil wenn da formatierter text ausgewählt ist behält der die endung .rtf 
hoffe ich konnte helfen ;-) 
Dehlen


----------



## jDennis79 (8. Nov 2010)

Geht auch mit XCode ganz gut. Man kann mit dem Editor auch einfach eine leere Datei öffnen (kein Projekt) und die dann ohne Probleme als .java Datei abspeichern. Syntax-Highlighting hat XCode auch für Java drauf.


----------



## MarderFahrer (9. Nov 2010)

Hemme hat gesagt.:


> Also ich  benutze selbst Mac und ich kann dir wie oben schon gesagt TextWrangler empfehlen.
> 
> Aber auch Smultron ist nicht schlecht. Du kannst ja mal beide ausprobieren.



Wo ich gerade einen weiteren Mac Benutzer hier habe, passiert es dir auch, dass bei jedem Neustart "Recovery Files" im Papierkorb sind? Aber nur dann, wenn man vorher TextWrangler benutzt hat?

Benutze ich TextWrangler mal einen Tag nicht, ist der Papierkorb leer beim nächsten Start...


----------



## Geeeee (9. Nov 2010)

Das ist "normal". Passiert auch bei anderen Anwendungen.
Allgemein dazu: Das sind temporäre Dateien z.b. Email-Anhänge, die du öffnest ohne sie vorher irgendwo hin zu sichern. Die werden erst beim Neustart gelöscht. Ist bei OS X eben so.


----------



## MarderFahrer (9. Nov 2010)

Also bisher ist mir das nur bei TextWrangler aufgefallen. War halt nur komisch weil das ganze "RecoveryFiles" oder so ähnlich heißt, was da dann im Papierkorb ist. Klang so nach Programm Absturz und geretteten Files, die in den Papierkorb wanderten.


----------



## Geeeee (9. Nov 2010)

Das heißt "Recovered Files" und ist wie gesagt normales Verhalten, wenn Apps ins temporäre Verzeichnis schreiben (und es beim Beenden nicht selbst aufräumen)


----------



## dehlen (9. Nov 2010)

das passiert aber auch ohne textwrangler .. kann bei jeder app passieren und kannst du problemlos löschen =)

ich hab das aber nie weil ich mein mac nie ausmache ;-)


----------



## PeterK (10. Nov 2010)

dehlen hat gesagt.:


> Das geht auch ganz einfach mit dem vorprogrammierten TextEditor namens TextEdit
> Einfach Quellcode reinschreiben als .java speichern und mit terminal compilieren.... nur dabei darauf achten das du im texteditor->Einstellungen und dort dann Reiner Text auswählst weil wenn da formatierter text ausgewählt ist behält der die endung .rtf
> hoffe ich konnte helfen ;-)
> Dehlen




Hallo und danke erstmal,

als ich deine Empfehlung gelesen habe, dacht ich mir genau das habe ich gesucht. Leider kann ich trotz der Umstellung auf reiner Text im Reiter Einstellungen, meine .java Datei nicht speichern. Die Angebotenen Optionen lauten nur: "es wird Sufix .rtf benötigt bzw. wollen sie beide Endungen verwenden!"

Wäre für eine weitere schnelle Hilfe sehr dankbar.

Besten Dank im Voraus.

Peter


----------



## dehlen (10. Nov 2010)

ja weil du einen formatierten text hast geh mal in deinem texteditor auf formart->in reinen text umwandeln und speicher dann


----------



## PeterK (10. Nov 2010)

dehlen hat gesagt.:


> ja weil du einen formatierten text hast geh mal in deinem texteditor auf formart->in reinen text umwandeln und speicher dann



Danke für die schnelle Antwort. Mich würde nur interessieren warum man unter Einstellungen die Option als reinen Text speichern, diesen aber im Anschluss nicht als solchen speichern kann. Ist es irgendwie möglich diesen lästigen Zwischenschritt zu umgehen?

mfg
Peter


----------



## bone2 (10. Nov 2010)

Es gibt doch sicher auch für mac nen anständigen texteditor. unter windows nutzt ja auch niemand Word


----------



## dehlen (10. Nov 2010)

müsste eigentlich gehen bei mir ist es zumindest so =)
also wenn du in den einstellungen halt anklickst das er immer ein reines textdokument erstellt dann macht er das auch und dann kannst du auch als .java speicher =)


----------



## xjCoder (10. Nov 2010)

bone2 hat gesagt.:


> Es gibt doch sicher auch für mac nen anständigen texteditor. unter windows nutzt ja auch niemand Word




...wie wäre es denn mit MacVim - eine schöne GUI des vi für OSX!
...und wer schon mit GVim gearbeitet hat, wird sich sofort zurechtfinden


----------



## Hemme (10. Nov 2010)

Also zum TextEditor:

TextEdit -> Einstellungen -> Neues Dokument -> Reiner Text.

Dann wird beim nächsten neuen Dokument die Einstellung übernommen.


----------



## thE_29 (11. Nov 2010)

JEdit ist nicht so schlecht, aber generell hasse ich es auf meine MBP irgendwas zu proggen..
Die []{\} sind einfach zu dumm belegt (zumindest beim Deutschen Layout) und da ja "weniger ist mehr" bei Mac cool ist, sind diese Tasten ja auch nicht gekennzeichnet..
Wenn ich dann mal wieder ne Zeit lang nichts auf dem MBP mache, vergesse ich wieder wo was war...


----------



## Geeeee (11. Nov 2010)

thE_29 hat gesagt.:


> JEdit ist nicht so schlecht, aber generell hasse ich es auf meine MBP irgendwas zu proggen..
> Die []{\} sind einfach zu dumm belegt (zumindest beim Deutschen Layout) und da ja "weniger ist mehr" bei Mac cool ist, sind diese Tasten ja auch nicht gekennzeichnet..
> Wenn ich dann mal wieder ne Zeit lang nichts auf dem MBP mache, vergesse ich wieder wo was war...


Eigentlich finde ich die gar net soo dumm belegt, da du nicht nur [] sondern auch {} nebeneinander hast. Wobei man größtenteils bei der Verwendung von <IDE deiner Wahl> eigentlich auch auf das schließende Zeichen verzichten kann. Ist aber bei mir, wenn ich mal auf'm Mac was mache schon sehr intuitiv, dass ich immer gleich "öffne und schließe".


----------



## thE_29 (11. Nov 2010)

Naja, die sind nicht wirklich nebeneinander..
Dazwischen ist ja die Pipe und der \ wird sowieso mal zum Fingerbruch


----------



## Geeeee (11. Nov 2010)

Ich meinte die "Päärchen" sind nebeneinander. Aber sehe gerade, dass es irgendwie in den letzten Jahren ein Remap der Tasten bei den neuen Modellen gab (und das auch noch Sprachlayout-abhängig).
Hab noch immer mein ~4 Jahre altes MacBook mit dem gleichalten externen Keyboard. Daran könnte es wohl liegen


----------



## jDennis79 (11. Nov 2010)

Also ich fand die Tastenbelegung nach kurzer Umgewöhnungsphase auf dem MP eigentlich auch viel sinniger und bequemer... wenn ich jetzt mal am Linux-Laptop sitze und da programmiere, empfinde ich das viel eher als "Fingerbruch"...


----------



## thE_29 (12. Nov 2010)

Fingerbruch ist der \ weil man da 3 Tasten drücken muss..
Konsequenter würde ich auch nicht sagen, sie liegen einfach woanders..

Und da es bei den MB(P/A) Tastaturen ja nicht oben steht, ist das bei mir immer ein raten


----------



## jDennis79 (12. Nov 2010)

thE_29 hat gesagt.:


> Fingerbruch ist der \ weil man da 3 Tasten drücken muss..
> Konsequenter würde ich auch nicht sagen, sie liegen einfach woanders..
> 
> Und da es bei den MB(P/A) Tastaturen ja nicht oben steht, ist das bei mir immer ein raten



Naja, wenn man nicht regelmäßig damit arbeitet, und noch dazu öfter zwischen Mac- und PC-Tastatur hin- und herwechselt, dann ist das wahrscheinlich auch nicht ganz einfach. Ich musste ja in der Anfangszeit auch jedesmal wieder nachgucken.

Aber nach 'ner Zeit geht's prima und, wie schon gesagt, für mein Gefühl sogar bequemer. Mir fällt es jedenfalls leichter, die Klammern mit einer Hand zu machen, als es mir mit PC-Tastatur fiel.

Und der \, naja, der ist ein wenig ungewöhnlich, aber die "Funktionstasten" liegen ja relativ günstig beieinander, so dass man die relativ gut mit einer Hand greifen kann... bei mir sind's immer Daumen und Ringfinger. Der "Dreiergriff" ist mir mittlerweile genauso geläufig, wie ganz früher zu Windows-Zeiten der "Affengriff".


----------

