NetBeans IDE (oft auch nur NetBeans genannt) ist eine freie integrierte Entwicklungsumgebung, die komplett in der Programmiersprache Java geschrieben wurde und auf der NetBeans-Plattform läuft. Die NetBeans IDE wurde hauptsächlich für die Programmiersprache Java entwickelt, unterstützt jedoch auch C, C++ und dynamische Programmiersprachen. Die IDE ist vergleichbar mit der Eclipse IDE oder den kommerziellen Versionen von JBuilder oder IBM Rational Application Developer (basierend auf Eclipse).
NetBeans ist ein Open-Source-Projekt, das als Plattform für eigene Anwendungen verwendet werden kann.
Geschichte 1996 entwickelten einige Studenten aus der Tschechischen Republik ein Projekt mit dem Namen Xelfi. Das Ziel dabei war es, Java-Entwicklern eine integrierte Entwicklungsumgebung zu bieten, die der damaligen Borland Delphi IDE ähneln sollte. Die Studenten setzten sich als Hauptziel eine IDE, die insbesondere eine grafische Entwicklung der Anwendungsoberfläche (GUI) stark vereinfachen sollte.
Das Studentenprojekt Xelfi wurde schließlich zur Firma NetBeans. Die ersten kommerziellen Versionen wurden dann unter dem Namen Developer 2.0 und 2.1 veröffentlicht. Im Mai 1999 kam die Developer Beta 3.0 auf den Markt. Allerdings erschien nie die endgültige Version des NetBeans Developer 3.0, da NetBeans im Oktober von Sun Microsystems übernommen wurde. Wenige Zeit später veröffentlichte Sun das Programm „Forté for Java Community Edition IDE“, das auf dem Developer 3.0 basierte. Der Name Forté wurde gewählt, weil Sun zu dem Zeitpunkt ebenfalls eine Firma für Komponentenentwicklung namens Forté akquiriert hatte. Im Juni 2000 wurde Forté wieder unter dem Namen NetBeans der Open-Source-Gemeinde zur Verfügung gestellt.
Zu der frei verfügbaren NetBeans-IDE-Version gab es weitere kostenpflichtige Versionen, darunter Sun ONE Studio und den Sun Java Studio Creator, die für spezielle Funktionen und durch Plug-ins für Web-Server-, HTML-Entwicklung, UML und SOA erweitert wurden. Seit November 2005 integrierte Sun alle Java-IDE-Produkte einheitlich in NetBeans als Plugin. Mit der Übernahme von Sun Microsystems im Jahr 2010 wurde neben OpenOffice und MySQL auch NetBeans von Oracle übernommen.
2016 begann Oracle damit, das gesamte NetBeans-Projekt an die Apache Software Foundation zu übergeben. Während des Übergabeprozesses wurde NetBeans zu einem Apache-Incubator-Projekt und der gesamte Quelltext sowie die Organisation des Projekts einer Überprüfung unterzogen. Der Quelltext wurde zudem nach Apache 2.0 Lizenz neu lizenziert. Dies führte dazu, dass zwischen der Veröffentlichung der Hauptversionen 8.2 und 9.0 fast zwei Jahre lagen und NetBeans 9.0 faktisch nur Java SE unterstützte. Die Unterstützung für weitere Sprachen kehrte dann in nachfolgenden Veröffentlichungen wieder zurück. Im April 2019 wurde NetBeans schließlich erfolgreich zu einem Top-Level-Projekt hochgestuft. Die Übergabe des Quelltextes von Oracle an Apache ist bis heute (Stand: Oktober 2019) noch nicht komplett abgeschlossen.
Unterstützte Sprachen Die NetBeans IDE unterstützt direkt die Programmiersprachen Java, C, C++, Fortran, JavaScript, Groovy und PHP. Durch Plugins kann Netbeans auch um Sprachen wie Ada, Adobe Flex, Clojure, Coco/R, Erlang, Fortress, Ruby, JavaMath, JavaFX, Perl, PL/SQL, Prolog, Python, Reguläre Ausdrücke, Scala, SmartFrog, Tcl, TeX und LaTeX, VRML und X3D erweitert werden.
NetBeans IDE Download-Pakete Bis Version 8.2 wurden für die IDE verschiedene Varianten als Download-Pakete angeboten, die sich auf einen bestimmten Anwendungsfall konzentrierten.
Java SE Mit der NetBeans IDE für Java SE kann man Anwendungen auf Basis der NetBeans-Plattform entwickeln. Es bietet Unterstützung für die Entwicklung von graphischen Java-Desktop-Anwendungen, Kommandozeilenanwendungen oder Java Applets. Das Java SE Download-Paket bietet eine JavaDoc-Integration, die die Kommentierung des erstellten Codes unterstützt und über eine Analysefunktion bestehende Kommentare auf Vollständigkeit und Fehler überprüft. Für die Testfallgeneration integriert das Java SE Download-Paket JUnit 3 und 4. Als Project Build-Systeme werden Apache-Ant- und Maven-Skripte unterstützt.
Jakarta EE Das Jakarta EE Download-Paket dient der Erstellung von Web- und Enterprise-Anwendungen auf Basis von Jakarta EE 8. Dies umfasst die Entwicklung von Webseiten, Servlets, Web Services, Enterprise Java Beans (EJB 3.1), JSF, JPA und bietet Unterstützung für den JSR 299 (Support for Contexts and Dependency Injection).
Web Frameworks
Der Projektwizard umfasst Java Server Faces (JSF), Spring, Struts und Hibernate. Dadurch ist es möglich, Projekte zu erstellen, welche diese Frameworks nutzen. NetBeans erzeugt automatisch alle notwendigen Konfigurationsdateien und kopiert alle benötigten Bibliotheken in die richtigen Verzeichnisse. Damit entfallen aufwendige Anpassungen der Buildskripte per Hand. Die automatische Vervollständigung unterstützt alle notwendigen Erweiterungen für diese Konfigurationsdateien. Der New File Wizard enthält Templates für JSF Managed Beans, Struts Actions oder Struts Form Beans. In bereits bestehende Projekte kann der „Framework support“ hinzugefügt werden.
Web Services
Mit der Unterstützung für Web Services ist es möglich, entsprechende Clients in J2SE-Applikationen zu erzeugen. Die für die Erzeugung und den Betrieb solcher Clients notwendigen Bibliotheken werden mit NetBeans ausgeliefert. Des Weiteren wird ein direkter Aufruf eines Web Service aus einer JSP unterstützt, ohne den Umweg über ein Servlet. Abgerundet wird das Paket mit einem neuen Wizard, der direkt in der IDE das Erstellen einer WSDL-Datei ermöglicht, die wiederum für die Generierung von speziellen, für einen Web Service relevanten Dateien genutzt werden kann.
Anwendungsserver
Um der Apache-Lizenz zu entsprechen, wurde die standardmäßige Unterstützung der Applikations-Server JBoss und WebLogic entfernt.
Standardmäßig sind nur noch GlassFish v5.0.1 und Payara enthalten.
C++ und C Das Download-Paket für C++ und C ermöglicht es, mit der Netbeans IDE auf C++, C oder Fortran basierende Anwendungen zu erstellen. Dabei können neue Projekte von Grund auf, aus existierendem Code oder aus Binärdateien erzeugt werden. Die Codevervollständigung für C++ und C wird automatisch konfiguriert, indem für jede Quelldatei die Erstellungsregeln aus dem zugehörigen Makefile oder Projekteigenschaften analysiert und die Abhängigkeiten ermittelt werden. Der Editor unterstützt Syntax- und Semantik-Highlighting, automatische Einrückung und Formatierung, Code-Templates und Kommentierungsunterstützung. Wie bei anderen IDEs auch können verschiedene Konfigurationen und Make-Ziele angelegt und verwaltet werden. Als Compiler werden standardmäßig die GNU-, Cygwin- und MinGW-Compiler unterstützt. Durch den Benutzer können weitere Compiler hinzugefügt werden.
Test und Deployment
Auch für in C++ oder C geschriebene Quellen können Unit-Tests direkt aus der IDE erstellt werden. Dabei wird eine grafische Unterstützung ähnlich wie JUnit aus dem Java-SE-Paket geboten. Die kompilierte Anwendung kann automatisch im tar-, ZIP-, SVR4-, RPM- oder Debian-Format bereitgestellt werden.
Debugger
Der Debugger für C++- und C-Projekte basiert auf dem GNU Debugger, es können jedoch auch andere Debugger eingebunden werden. Es werden Mehrfach-Debugger-Sitzungen unterstützt, ebenso wie Linien- und Funktions-Breakpoints. Sämtliche Debugger-Funktionen sind in der IDE integriert.
Qt-Unterstützung
NetBeans bietet eine vollständige Unterstützung von Qt, wodurch alle Qt-Dateitypen erstellt und bearbeitet werden können (also Qt-Files, GUI-Forms, Ressourcen und Translation-Files). Die Standard-Qt-Werkzeuge wie Qt Designer, Qt Linguist oder qmake sind vollständig eingebunden.
Remote-Development
Eine Besonderheit ist die vollständige Unterstützung von Remote-Development für C++- und C-Projekte. Dies bedeutet, Projekte vollständig auf einem entfernten Rechner zu entwickeln, bauen, ausführen und debuggen. Für den Benutzer unterscheidet sich die Handhabung dieser Projekte nicht von der lokalen Entwicklung.
PHP Dient zur Erstellung von Web-Applikationen. Unterstützt JavaScript, CSS3 und, ab Version 7.3, auch HTML5-Syntax-Highlighting. Ebenso werden auch das Zend Framework, Symfony2 und das Symfony1-Framework unterstützt.
All Das Download-Paket All umfasst alle vorgestellten Download-Pakete sowie die Unterstützung für Groovy und die Entwicklung von Java-Anwendungen für mobile und eingebettete Geräte.
NetBeans IDE im Detail Plugins Es gibt eine Reihe von Erweiterungen für NetBeans, sogenannte „Plugins“, die der IDE spezielle Techniken oder Tools hinzufügen. Die kommerziellen oder freien Plugins können über die Projektseite oder direkt aus der NetBeans IDE heraus bezogen werden. Über eine einfache Funktion werden sie anschließend in die IDE integriert. Die Modularisierung der NetBeans IDE geht so weit, dass sogar das komplette Projektmanagement ausgetauscht werden kann. So ist es zum Beispiel möglich, ein Maven-Plugin zu installieren und darüber Java-Projekte zu verwalten.
Debugging Mittels des grafischen Debuggers können Haltepunkte direkt im Quelltext (auch während der Laufzeit) aktiviert und deaktiviert werden. Haltepunkte können fest, bedingt oder signalorientiert sein. Bedingte Haltepunkte werden nur ausgeführt, wenn ein berechneter boolescher Ausdruck erfüllt ist. Signalhaltepunkte reagieren zum Beispiel auf bestimmte Ausnahmen (Exceptions) oder Einstiegs- und Ausstiegspunkte von Methoden. Außerdem beherrscht der Debugger interaktive Haltepunkte (Run to Cursor und Run to method).
Zu beobachtende Variablen können mittels Code Completion (wie im normalen Editor) eingegeben werden. Während der Laufzeit können beliebige Java-Ausdrücke berechnet werden, und Variableninhalte können zur Laufzeit geändert werden. Eine besondere Übersicht vereinfacht es, große beobachtete Arrays darzustellen. Im Quelltext kann per Tooltip der Variableninhalt angezeigt werden.
Ab dem JDK 5.0 können auch Methodenblöcke während der Laufzeit modifiziert werden.
Der Debugger ist multisession- und multithreadingfähig, das heißt, es können gleichzeitig mehrere Programme und in jedem Programm mehrere Threads überwacht werden.
GUI-Builder mini|GUI-Builder unter Windows Der Matisse-GUI-Builder ermöglicht eine grafische GUI-Gestaltung, ohne dass es nötig ist, sich mit den Eigenarten von Swing-Layoutmanagern auszukennen. Er bietet zudem einen eigenen Layoutmanager (GroupLayout), der mit Version 6 Teil der Java Platform, Standard Edition wurde, und kann das Layout in das null-Layout konvertieren. Mittels Drag & Drop können die Komponenten der Form hinzugefügt werden, wobei Ausrichtung, Größe oder andere Eigenschaften einfach anpassbar sind bzw. durch die IDE automatisch vorgegeben werden. Textelemente können direkt in dem GUI-Builder bearbeitet werden. Matisse unterstützt JavaBeans als Komponenten und Container. Alle beschreibenden Texte können internationalisiert und aus Übersetzungstabellen (Resourcedateien) eingelesen werden.
Quelltexteditor mini|Quelltexteditor Editorfunktionen Javatipps, die bei der Quelltexterstellung helfen Komponentenpaletten zum einfachen Einfügen von Codeschnipseln (z. B. HTML, JSP oder SQL) via Drag & Drop in eine JSP- oder HTML-Seite Fehlermarkierung, die anzeigt, ob die Datei kompilierbar ist oder nicht, und einen Überblick über alle Fehler, Warnungen, Todos und Bookmarks im Quelltext gibt Umschließen eines selektierten Statements mit einem try/catch-Block SQL-Editor mit Syntaxhervorhebung einfaches Hinzufügen von XML-Dateien, wie Dokumenttypdefinitionen (DTD) und Schemata (XSD), für die Nutzung bei der Code Completion und die Validierung Einführung einer Möglichkeit, aus vorgegebenen Sets für Tastenkürzel oder Farbschemata (z. B. im Emacs-Stil) zu wählen oder diese nach eigenen Wünschen anzupassen
Codevervollständigung von Java-Quelltext