openJDK welche Version

R

ralli

Guest
Ich habe in den vergangenen Jahren Erfahrungen mit vielen Hochsprachen machen dürfen, darunter auch c oder c++. Jetzt möchte ich mich endlich auch ein Mal mit Java beschäftigen. Unter anderem auch wegen der immer viel gelobten Plattformabhängigkeit. Anfangs möchte ich schon ohne IDE auskommen. In den ports fand ich zwei verschiedene Versionen openjdk5, und openjdk6. Welche sollte ich zum Einstieg bevorzugen? Nach der Einarbeitung möchte ich mich mit der GUI Programmierung (SWING) beschäftigen und dann später der Datenbankentwicklung für und mit sqlite3 widmen. Gibt es noch etwas, auf das ich besonders achten sollte?
 
Hallo Ralli,

ich würde in jedem Fall von Java abraten, aus Sicherheitsgründen...

Gruß ré
 
Für den Einstieg ist es eigentlich egal, welches JDK du nimmst. Da OpenJDK5 schon ein paar Jahre auf dem Buckel hat, kannst du eigentlich gleich OpenJDK7 nehmen (ist ebenfalls in den Ports).

Für die GUI-Entwicklung bietet sich eine IDE an. Die aktuelle Version von NetBeans zickt gerne rum; meist läuft es nach einem Update erst mal gar nicht. NetBeans 6.1 ist aber auch noch in den Ports, was sehr stabil und schnell ist, dafür ist der GUI Builder schon etwas älter. Mit Eclipse kenne ich mich nicht aus.
 
Eclipse ist riesig und zuweilen etwas unübersichtlich aber es kann auch fast alles, es gibt extrem viele Plugins und eigentlich sollte man sich aus Gründen der Effizienz nicht dagegen streuben ;)

Es gibt dazu sehr viele Automatiken, die dem Programmierer das Leben extrem erleichtern können.
 
dann scheine ich mir die Sicherheitsproblematik mit Java nur einzubilden?

Gruß ré

Nein, tust du nicht, aber diese Problematik hat hier nichts verloren.

@ralli
Wenn man eine neue Programmiersprache kennen lernen möchte, bietet es sich an, mit der neusten Version einzusteigen. Die ist - wie schon erwähnt - Version 7.
 
Danke Euch allen für die Unterstützung, es ist für meine Entscheidungsfindung sehr hilfreich. Dann werde ich mal die neueste Version installieren und gleich mit einem traditionellem Hello World beginnen, um mich dann weiter vorzuarbeiten.
 
So Hallo Welt hat funktioniert!:) Wagemutig wollte ich mit mit Hilfe der swing Klasse an ein einfaches Fenster wagen:

Code:
// Import-Anweisung für unseren JFrame
import javax.swing.JFrame;
 
public class FrameBeispiel
{
    public static void main(String[] args)
    {
        /* Erzeugung eines neuen Frames mit dem 
           Titel "Beispiel JFrame " */       
        JFrame meinFrame = new JFrame("Beispiel JFrame");
        /* Wir setzen die Breite und die Höhe 
           unseres Fensters auf 200 Pixel */        
        meinFrame.setSize(200,200);
        // Wir lassen unseren Frame anzeigen
        meinFrame.setVisible(true);
    }
}

Der Java Compiler läuft fehlerlos durch, aber wenn ich das compilierte Programm aufrufe, kommt die Fehlermeldung:

java FrameBeispiel.java

Code:
Fehler: Hauptklasse FrameBeispiel.java konnte nicht gefunden oder geladen werden

Was mache ich denn hier falsch, muss das swing Paket noch extra installiert werden? Gefunden habe ich es nicht in den Ports.

So, wenn das geklärt und gelöst ist, dann komme ich alleine weiter.:)
 
Keine Ahnung, was da los ist, bei mir geht das einwandfrei... Ich habe auch nur OpenJDK installiert.

Edit: Ach so! Erstmal musst du "javac FrameBeispiel.java" machen. Dannach geht ein "java FrameBeispiel"...
 
Das habe ich natürlich gemacht. Dann habe ich noch folgenden Code compiliert und ausgeführt:


Code:
import javax.swing.*;
 
class HelloWorldSwing {
    public static void main(String[] args) {
        // Wrappe den auszuführenden Quellcode in ein eigenes
        // Runnable-Objekt, um diesen nachher im Event Dispatching
        // Thread ausführen zu können
        Runnable guiCreator = new Runnable() {
            public void run() {
                // Erstellt das Swing-Fenster
                JFrame fenster = new JFrame("Hallo Welt mit Swing");
                // Swing anweisen, das Programm zu beenden, wenn das Fenster

                // geschlossen wird
                fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
                // Fügt den "Hallo Welt"-Text hinzu
                JLabel label = new JLabel("Hallo Welt");
                fenster.getContentPane().add(label);
 
                // Zeigt das Fenster an
                fenster.setSize(300, 200);
                fenster.setVisible(true);
            }
        };
 
        // Führe den obigen Quellcode im Event-Dispatch-Thread aus
        SwingUtilities.invokeLater(guiCreator);
    }
}

Das hat einwandfrei funktioniert, warum im ersten Beispiel nicht, kann ich nicht nachvollziehen. Trotzdem vielen Dank. Jetzt ruft die Familie .... :) Morgen geht es dann weiter.
 
Nur mal so, falls das kein Schreibfehler von dir war:


Kompilieren:
Code:
javac Bla.java
Ausführen einer Class Datei:
Code:
 java Bla
Ausführen einer Jar:
Code:
 java -jar Bla.jar
 
Nur mal so, falls das kein Schreibfehler von dir war:


Kompilieren:
Code:
javac Bla.java
Ausführen einer Class Datei:
Code:
 java Bla
Ausführen einer Jar:
Code:
 java -jar Bla.jar

Nein das war kein Schreibfehler. Ich schrieb aber schon, das der Fehler nach dem Compilerdurchlauf beim Aufruf des Programmes ausgegeben wurde. Ausgeschlafen geht es eben früh morgends besser. Ich habe beim Aufruf des Programmes fälschlicherweise java FrameBeispiel.java eingegeben. Richtig muss es ja java FrameBeispiel heissen. Aber das ging aus Deinem Post ja schon hervor, danke. Jetzt werde ich mich weiter mit den Grundlagen beschäftigen, denn ich weiss noch nicht, was eine Datei mit Endung jar ist und bedeutet.
 
Die jar-Dinger kannst du erstmal außen vor lassen. Das ist nur später interessant, wenn du dein Programm mal anderen zur Verfügung stellen möchtest.
 
Die jar-Dinger kannst du erstmal außen vor lassen. Das ist nur später interessant, wenn du dein Programm mal anderen zur Verfügung stellen möchtest.
Klaro, das mache ich so und folge Deiner Empfehlung. In Netbeans habe ich auch schon reingeschnuppert, aber diese eierlegende Wollmilchsau ist mir dann doch zu üppig und ich werde erst mal einige kleinere Anwendungen zu Fuß und nur mit einem normalen Texteditor wie Kwrite erstellen, der beherrscht ja auch schon Syntax-Highlighting. Natürlich reizt mich netbeans auch, weil da ja auch ein GUI Builder integriert ist. Allerdings lerne ich ohne wohl erst mal mehr.
 
Wenn du das fortführen willst und externe Bibliotheken nutzen willst, dann bietet sich auch ein Blick auf maven an. NetBeans unterstützt Maven nativ. Damit bist du dann IDE unabhängig.
 
Ich habe in den vergangenen Jahren Erfahrungen mit vielen Hochsprachen machen dürfen, darunter auch c oder c++. Jetzt möchte ich mich endlich auch ein Mal mit Java beschäftigen. Unter anderem auch wegen der immer viel gelobten Plattformabhängigkeit. Anfangs möchte ich schon ohne IDE auskommen. In den ports fand ich zwei verschiedene Versionen openjdk5, und openjdk6. Welche sollte ich zum Einstieg bevorzugen? Nach der Einarbeitung möchte ich mich mit der GUI Programmierung (SWING) beschäftigen und dann später der Datenbankentwicklung für und mit sqlite3 widmen. Gibt es noch etwas, auf das ich besonders achten sollte?

Hallo mein Lieber,

also wenn Du schon etwas mit C und C++ Bekanntschaft gemacht hast dann ist der Einstieg nicht mit all zu großen Hürden behaftet.
Auch finde ich persönlich Deine Entscheidung *erstmal keine* IDE zu nutzen sehr gut! Denn im Prinzip reicht Dir erst mal nur ein schlichter Editor später kannst Du dann den Editor mit Plugins erweitern, die Dir Handarbeit abnehmen

Derzeit ist eigentlich openjdk7 angesagt, aber es spricht auch erstmal nichts dagegen das openjdk6 zu nutzen bis Du es mal einiger massen drinne hast :) zudem kannst du auch mehrere jdk-sdk Versionen nebeneinander betreiben, das geht problemlos..
Beachten dabei musst Du dann nur, dass Du die PATH und CLASSPATH Variablen dem entsprechend anpasst und dann war es dann. Erklärung dazu erfolgt weiter unten.

Zu was ich Dir aber auf alle Fälle raten würde Dir die Dokumentation gleich mit zu installieren diese ist RIESIG aber nach meinen Dafürhalten die qualitativ beste und unfangreichste Dokumentation die man als Programmierer zur Verfügung haben kann, da sehen ziemlich alle anderen Sprachen so richtig alt dagegen aus.

So wichtig ist es auch das Du den Path und den Classpath richtig setzt das verhindert Fehler bei der späteren Ausführung Deines Programmes.
Den Pfad zu Java, auf Deinen System bekommste mit dem Aufruf in der Shell which java dann angezeigt
So das setzen des PATh geht unter Unix/GnuLinux /*BSD dann so, ich erspare mir jetzt mal die Tipparbeit hier wird es Dir umfassend und anschaulich erklärt

--- http://www.cyberciti.biz/faq/linux-unix-set-java_home-path-variable/
--- http://docs.oracle.com/javase/tutorial/essential/environment/paths.html
--- https://www.java.com/de/download/help/path.xml

Weitere nützliche Aufrufe wären dann auch:

java -version kurz info zur installierten java version
java -fullversion vollständige info zur installierten java version
javac Info zum compiler
appletviewer benötigst für applet's info

Mit der Plattform Unabhänigkeit kann ich Da aus Erfahrung heraus nur begrenzt zu stimmen, hatte mal für Mobilfunktelefone Java Applikationen erstellt, lange her, aber seit Android ist es da nun wesentlich besser geworden, nicht so wie früher als du immer ein extra SDK*s für jeden Anbieter gebraucht hast, Nokia; Motorola; SonyEricson; Siemens auch Symbian etc.pp usw.usf
Mal abgesehen vom BB da wird immer noch die eigene Suppe gekocht.

So aber das ist ja nicht Deine Zielrichtung was Du anstrebst wollte nur auf die Flexibilität von Java hinweisen und das ist Java mit Abstand zudem brauchst Du Dich nicht mit QT oder GTK oder FLTK rumärgern oder den ganzen Windows Foundation Kram sowie Apple Eigenwächse die oft nur mit Objective C richtig gut funzen, das ersparst Du Dir.

Hast also den Kopp frei um gute Programme zu schreiben :) Mit der Speicherverwaltung und dem Macken von C fang ich erst garnet an. Nimmt Dir Java ab.

Pure Java ist immer noch das beste und da biste mit Schwing sehr gut bedient und ersparst Dir Nachteile zwar kannste erweitern auch GTK nutzen das geht alles aber wozu sich unnötige Probleme ans Bein binden Swing bietet alles in Hülle und Fülle!

So später kannst Dir dann Eclipse installieren aber sei gewarnt die hat soviel Möglichkeiten das überfordert einen, auch NetBeans steht da in nix nach. XDEV in der jetzigen Beta-Version 4.0

--- http://cms.xdev-software.de/content.php?

wäre vielleicht ne Altenative weil nicht so überfrachtet und sehr gut auf Belange auch von Einsteigern in die Sprache Java eingeht!

Aber das wäre erst überhaupt der 3.Schritt! am Anfang nen stinknormalen Editor keinerlei Tools die Dir zum Beispiel das Zeichnen von Guis abnehmen ne braucht man wirklich erst viel später.
Als zweiter Schritt nen schönen feinen Editor den Du mit Plugins erweitern kannst zum Beispiel JEdit oder auch Geany natürlich geht auch VIM oder mein Freund der Emacs aber da gibt es ja Glaubenskriege.

So und dann erst eine mächtige IDE Eclipse oder NETBEANS mit Konfigurationsmöglichkeiten wo man tage lang rumsitzen kann um seine Workspaces zu konfigurieren und Teamarbeit bis ins kleinste Detail einstellen kann.

Der Hardcore Weg ist immer noch der Beste :)

Viel Spass mit Java lohnt sich
 
Zuletzt bearbeitet:
Oh, sehr hilfreiche Informationen, die mir den Ein- oder Umstieg auf Java sehr erleichtern. Du hast Dir sehr viel Mühe und Arbeit gemacht und dafür will ich Dir erst Mal danken rudy.

Ich werde alle Tipps beherzigen.

Natürlich habe ich mich vorher auch ein wenig kundig gemacht und recherchiert, bevor ich mich ins Getümmel stürzte.

Ich setzte in die .xinitrc:

PATH=$PATH:/usr/local/jdk-1.7.0/bin

JAVA_HOME=/usr/local/jdk-1.7.0

Ob das der richtige Ort dafür war, wusste ich nicht, es hat aber funktioniert.

Jetzt muss ich noch die umfangreiche und gelobte Dokumentation jdk7-doc installieren für openjdk7. Die liegt ja nicht als Binärpaket vor, also muss ich es selber bauen.

Als begleitendes Tutorial fand ich auch dieses:

http://www.java-tutorial.org/gui-programmierung.html

Oder das OpenBook:

http://openbook.galileocomputing.de/javainsel/

Es muss nicht online gelesen werden, es kann auch als html heruntergeladen werden.

So, das sollte anfangs erst Mal reichen, Erfahrungen werden doch ausschließlich durch praktisches Arbeiten entstehen. Ja, Du hast es richtig erkannt und eingeschätzt, große Hürden sind das für mich nicht, weil ja kein wirkliches Neuland.

Also mit solch einer Unterstützung macht es noch viel mehr Spaß und Freude. DANKE! Ich werde dann mal berichten und teilen, wenn ich Fortschritte gemacht habe oder neue Erkenntnisse.
 
Passe deinen Pfad und deine Loginumgebungsvariablen besser per /etc/login.conf oder ~/.login_conf an. Damit gelten die Einstellungen unabhängig von der Shell und dem Displaymanager.
 
Passe deinen Pfad und deine Loginumgebungsvariablen besser per /etc/login.conf oder ~/.login_conf an. Damit gelten die Einstellungen unabhängig von der Shell und dem Displaymanager.
Danke, eine gute Idee, wird erledigt. Aber vorher werde ich mich erst für login.conf einlesen, damit ich hier nichts falsch mache.
 
dann scheine ich mir die Sicherheitsproblematik mit Java nur einzubilden?

Die Problematik ist fast ausschließlich auf das Java-Webstart-Plugin beschränkt.
Wer das nicht verwendet, muss sich nicht mehr Gedanken über Sicherheit machen als bei anderen Programmiersprachen auch.

also wenn Du schon etwas mit C und C++ Bekanntschaft gemacht hast dann ist der Einstieg nicht mit all zu großen Hürden behaftet.

Korrekt; einer der Gründe für den Erfolg von Java ist der einfache Umstieg von C und C++.

Zu was ich Dir aber auf alle Fälle raten würde Dir die Dokumentation gleich mit zu installieren diese ist RIESIG aber nach meinen Dafürhalten die qualitativ beste und unfangreichste Dokumentation die man als Programmierer zur Verfügung haben kann, da sehen ziemlich alle anderen Sprachen so richtig alt dagegen aus.

Auch hier kann ich nur zustimmen. Jedesmal, wenn ich in die Welt von C und C++ zurückkehre, sehne ich mich nach der Java-Standardbibliothek zurück.

So später kannst Dir dann Eclipse installieren aber sei gewarnt die hat soviel Möglichkeiten das überfordert einen, auch NetBeans steht da in nix nach.

Von Eclipse würde ich eher - vor allem am Anfang - Abstand nehmen. Netbeans ist zwar sehr mächtig, aber wesentlich einsteigerfreundlicher, stimmiger und transparenter als Eclipse.

XDEV in der jetzigen Beta-Version 4.0

--- http://cms.xdev-software.de/content.php?

wäre vielleicht ne Altenative weil nicht so überfrachtet und sehr gut auf Belange auch von Einsteigern in die Sprache Java eingeht!

XDEV würde ich für den Einstieg nicht empfehlen, weil es eher den Fokus hat, viele Java-Details vom Entwickler fernzuhalten.

Aber das wäre erst überhaupt der 3.Schritt! am Anfang nen stinknormalen Editor keinerlei Tools die Dir zum Beispiel das Zeichnen von Guis abnehmen ne braucht man wirklich erst viel später.

Das würde ich anders machen. Sobald man ein Grundverständnis von den Standard-Tools und -Konzepten hat (d.h. javac, maven, classpath, etc.), würde ich zeitnah auf eine IDE umsteigen (meiner Meinung nach ist Netbeans hierfür die beste Wahl).

So und dann erst eine mächtige IDE Eclipse oder NETBEANS mit Konfigurationsmöglichkeiten wo man tage lang rumsitzen kann um seine Workspaces zu konfigurieren und Teamarbeit bis ins kleinste Detail einstellen kann.

Netbeans bietet auch für den Einstieger erhebliche Vorteile:
  • Intelligente Codevervollständigung (vor allem in Anbetracht der riesigen Standardbibliothek ein gigantischer Vorteil)
  • Es weist sofort auf die üblichen (und teilweise auch sehr exotische) Java-Stolpersteine hin, so dass man sich gar nicht erst einen schlechten Stil angewöhnt.
  • Die IDE macht trotzdem keine "Magie" im Hintergrund - man kann jederzeit auf die Kommandozeile und zurück wechseln, wenn man sich bevormundet fühlt.
  • Der Swing-Editor - selbst wenn man ihn nicht benutzen möchte - bietet eine fantastische Übersicht über die Swing-Bausteine und deren Verwendung.
  • Elementare Methoden der modernen Softwareentwicklung wie Refactoring funktionieren mit Texteditoren überhaupt nicht. Wenn man mal mit "Rename" angefixt wurde, wird einem die Unzulänglichkeit eines Texteditors schmerzhaft bewusst.

Man sollte sich von der Funktionsvielfalt nicht erschlagen lassen. Auch wenn man am Anfang nur 5% der IDE verwendet, lernt man schneller mehr über Java als auf der Kommandozeile, weil die IDE viel repetitive Handarbeit abnimmt und man sich auf den Kern der Sache konzentrieren kann.

Viel Spass mit Java lohnt sich

Stimmt. Aus gutem Grund ist es nach wie vor die lingua franca der Softwareentwicklung.
 
Moin zusammen:

Im Großen und Ganzen würd ich Dir zustimmen Azazyel aber was IDE angeht ist auch ne Geschmacksfrage manche liegen einen mehr manche weniger und manche ganz und gar nicht. Als ich seinerzeit viel auf den unterschiedlichen mobilen Plattformen gemacht hab da war Netbeans das Werkzeug meiner Wahl nichts kam an dieses Werkzeug heran.
Das änderte sich dann später mit Android, dann der Wechsel zu Eclipse ist also schon ne ganze Wele her :)
Einer der Vorteile von Eclipse Du kannst in einer Vielzahl von Sprachen programmieren und da hab ich dann lieber ein einheitliches Workspace, aber das ist ne Geschmacksfrage.
Heute komme ich wieder zurück zu Assembler weil ich viele Plugins ( Kompressoren - Filter etc.pp ) programmiere im Multimediabereich und ich da mit Pascal nicht so sehr ans Ziel komme, C meide ich da gänzlich auch aus Erfahrungen heraus Vlc hat immer noch einen hohen Assembleranteil. Es ist im Multimediabereich da immer noch die erste Wahl der Sprache.
Auf was ich raus will ist das es auch auf den Einsatzweck ankommt der bestimmt dann die zu einsetzende Sprache und auch das Werkzeug das man nutzen kann.

Es gibt hervoragende Software die in Java programmiert worden ist und wird und man kann sogar den Echtzeiteinsatz realisieren mit Java und gerade kommt es auch auf den Sicherheitsaspekt an. Wir kennen alle die Vorteile der Sprache ADA versus C und gerade dort explizit die Compilerüberprüfung manchmal war und ist es auch ne Art von Ideologie.

Gerade so aus meiner Erfahrung heraus ist es gut das man als Programmierer breit aufgestellt ist, was die Sprachen und Tools angeht so kommt das gute alte Perl immer noch stark im Bereich von Suchmaschinen zur Anwendung DuckDuckgo ist da der Kandidat.
 
So, nachdem ich einige kleine java Schnippsel manuell mit einem normalen Editor erstellte, um ein Gefühl für das ganze zu bekommen, habe ich mich nun seit 2 Tagen mit der Netbeans IDE eingearbeitet und beschäftigt. Sofort fühlte ich mich zu Hause, früher von Delphi kommend. Also für größere Projekte unverzichtbar.

Auch den Komfort mit der Codevervollständigung ect. kannte ich natürich von Delphi oder dem qtcreator.

Hier mein eigener Workaround für die nervende Fehlermeldung, die beim Starten von Netbeans für den Profiler auftritt:

als root:

cd /usr/local/netbeans/profiler/lib/deployed/jdk16

Ordner solaris anlegen

In Ordner solaris Inhalt des Ordners solaris-i386 kopieren

Hat funktioniert!

Ach ja, das ganze läuft nun bei mir nun zufriedenstellend unter OpenBSD 5.3, weil unter FreeBSD meine Soundkarte nicht erkannt wird und ich auch keine Silberscheiben brennen konnte.

Wie ich sah, ist java doch sehr beliebt und verbreitet, sonst gäbe es nicht so unheimlich viele Tutorials dafür. Die Dokumentation der java API ist hervorragend und vorbildlich. Danke allen, die mir den Einstieg mit Ihrer Unterstützung erleichtert haben.
 
Nach einigen Experimenten und Ausprobieren bin ich dann doch wieder reumütig zu FreeBSD zuück gekehrt, weil ich mit den Performanceproblemen wegen des fehlenden Nvidia Trieibers nicht wirklich gut arbeiten konnte. Nun habe ich mich endgültig entschieden und Netbeans 6.1 und JDK 7 gebaut und installiert. Das läuft nun sehr flott und ohne Probleme. Andere neuere Netbeans Versionen(7.3) probierte ich auch, sie zickten aber rum bei mir.;'(
 
Staune etwas!
War der Meinung snd_hda kommt mit so fast jedem Standard-Soundchipsatz zurecht oder benutzt du Studio-Equipment?!
 
Zurück
Oben