Apache NetBeans | |
---|---|
![]() | |
![]() Apache NetBeans IDE 11.0 | |
Basisdaten | |
Entwickler | Apache Software Foundation,Oracle Corporation |
Erscheinungsjahr | 1997 |
Aktuelle Version | 25[1] (20. Februar 2025) |
Aktuelle Vorabversion | 12.3 Beta 3 (5. November 2020) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Java |
Kategorie | IDE |
Lizenz | Apache 2.0 Lizenz, Bis Version 8.2:CDDL,GPL (v2 with Classpath Exception, ab Version 6.0)[2] |
deutschsprachig | nein |
netbeans.apache.org |
NetBeans IDE (oft auch nurNetBeans genannt) ist einefreieintegrierte Entwicklungsumgebung, die komplett in derProgrammierspracheJava geschrieben wurde und auf der NetBeans-Plattform läuft. Die NetBeans IDE wurde hauptsächlich für die Programmiersprache Java entwickelt, unterstützt jedoch auchC,C++ und dynamische Programmiersprachen. Die IDE ist vergleichbar mit derEclipse IDE oder den kommerziellen Versionen vonJBuilder oderIBMRational Application Developer (basierend auf Eclipse).
NetBeans ist einOpen-Source-Projekt, das alsPlattform für eigene Anwendungen verwendet werden kann.
1996 entwickelten einige Studenten aus derTschechischen Republik ein Projekt mit dem NamenXelfi. Das Ziel dabei war es, Java-Entwicklern eine integrierte Entwicklungsumgebung zu bieten, die der damaligenBorland 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 StudentenprojektXelfi 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 vonSun 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, darunterSun ONE Studio und denSun Java Studio Creator, die für spezielle Funktionen und durchPlug-ins für Web-Server-, HTML-Entwicklung,UML undSOA erweitert wurden. Seit November 2005 integrierte Sun alle Java-IDE-Produkte einheitlich in NetBeans als Plugin.[3] Mit der Übernahme von Sun Microsystems im Jahr 2010 wurde nebenOpenOffice undMySQL auch NetBeans vonOracle übernommen.
2016 begann Oracle damit, das gesamte NetBeans-Projekt an dieApache Software Foundation zu übergeben.[4] 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.[5] 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.[6] Die Übergabe des Quelltextes von Oracle an Apache ist bis heute (Stand: Oktober 2019) noch nicht komplett abgeschlossen.
Die NetBeans IDE unterstützt direkt die Programmiersprachen Java, C, C++,Fortran,JavaScript,Groovy undPHP. Durch Plugins kann Netbeans auch um Sprachen wieAda,Adobe Flex,Clojure,Coco/R,Erlang,Fortress,Ruby,JavaMath,JavaFX,Perl,PL/SQL,Prolog,Python,Reguläre Ausdrücke,Scala,SmartFrog,Tcl,TeX undLaTeX,VRML undX3D erweitert werden.
Bis Version 8.2 wurden für die IDE verschiedene Varianten als Download-Pakete angeboten, die sich auf einen bestimmten Anwendungsfall konzentrierten.
Mit der NetBeans IDE fürJava SE kann man Anwendungen auf Basis der NetBeans-Plattform entwickeln. Es bietet Unterstützung für die Entwicklung von graphischen Java-Desktop-Anwendungen, Kommandozeilenanwendungen oderJava 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-PaketJUnit 3 und 4. Als Project Build-Systeme werdenApache-Ant- undMaven-Skripte unterstützt.
DasJakarta 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 umfasstJava Server Faces (JSF),Spring,Struts undHibernate. 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. Dieautomatische Vervollständigung unterstützt alle notwendigen Erweiterungen für diese Konfigurationsdateien. DerNew 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ürWeb 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 einerJSP unterstützt, ohne den Umweg über einServlet. Abgerundet wird das Paket mit einem neuen Wizard, der direkt in der IDE das Erstellen einerWSDL-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-ServerJBoss undWebLogic entfernt.
Standardmäßig sind nur noch GlassFish v5.0.1 und Payara enthalten.[7]
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- undMinGW-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 wieJUnit aus dem Java-SE-Paket geboten. Die kompilierte Anwendung kann automatisch imtar-,ZIP-, SVR4-, RPM- oder Debian-Format bereitgestellt werden.
Debugger
Der Debugger für C++- und C-Projekte basiert auf demGNU 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 vonQt, 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.
Dient zur Erstellung von Web-Applikationen. UnterstütztJavaScript,CSS3 und, ab Version 7.3, auchHTML5-Syntax-Highlighting. Ebenso werden auch dasZend Framework,Symfony2 und dasSymfony1-Framework unterstützt.
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.
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, einMaven-Plugin zu installieren und darüber Java-Projekte zu verwalten.[8]
Mittels des grafischenDebuggers 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 undRun 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 perTooltip der Variableninhalt angezeigt werden.
Ab dem JDK 5.0 können auch Methodenblöcke während der Laufzeit modifiziert werden.
Der Debugger ist multisession- undmultithreadingfähig, das heißt, es können gleichzeitig mehrere Programme und in jedem Programm mehrereThreads überwacht werden.
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 derJava Platform, Standard Edition wurde, und kann das Layout in das null-Layout konvertieren. MittelsDrag & 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.
Für das Vervollständigen von Klassen, Methoden und Feldern können durch die Codecompletion-Box Codeschnipsel aus folgenden Bereichen neu erzeugt werden:
Zusätzlich kann durch die Verwendung bestimmter Abkürzungen (Camel Case Identifier) Code erzeugt werden. So kann beispielsweise die Eingabe vonAIOOBE automatisch durchArrayIndexOutOfBoundsException ersetzt werden.
Der Java-Editor beherrscht folgendeRefactorings inklusive Wiederherstellen und Vorschau der Ergebnisse:
Natürlich werden alle Referenzen im gesamten Projekt angepasst, wenn ein Refactoring durchgeführt wird. Wenn also perChange Method Parameters die Reihenfolge von Parametern geändert werden soll, wird im gesamten Quelltext jeder Aufruf entsprechend angepasst. Verschiebt man eine Klasse in ein anderes Paket, so passen sich mit dem Refactoring-Vorgang alle import-Befehle an.
Außerdem kann die Verwendung von Variablen, Parametern, Methoden und Klassen aufgelistet werden (Find usages). MittelsFix Imports können Import-Anweisungen automatisch und interaktiv dem Quelltext hinzugefügt werden.
Zusätzliche Module erlauben das Auffinden von ungenutzten Variablen, leeren catch-Blöcken oder toten Methoden. Durch diese Module kann die bereits sehr mächtige Refactorfunktionalität von NetBeans weiter ausgebaut werden.
Das Refactoring für andere Sprachen wie C++ und C ist im Moment noch nicht so mächtig. Jedoch soll in den nächsten Versionen auch bei diesen ein vergleichbarer Funktionsumfang erreicht werden.
DerProfiler wird ab Version 6.0 mitgeliefert.[9]
Um eine sichere, skalierbare Anwendung zu erstellen, benötigen Java-Entwickler Informationen über das Laufzeitverhalten ihrer Anwendung. Der NetBeans-Profiler stellt diese Informationen zur Verfügung. Innovative Techniken erlauben es dem Entwickler, seine Anwendung mit wenig Aufwand zu messen. Die Ergebnisse des Profilers sind klar strukturiert und einfach zu interpretieren. Die zu messenden Anwendungen können sich auf dem lokalen oder einem entfernten System befinden.
Folgende Funktionen beherrscht der Profiler:
Durch die Integration in die IDE erlaubt es der Profiler, Performanceprobleme und Speicherprobleme aufzuspüren.
Der Profiler basiert auf einem Forschungsprojekt der Sun Laboratories, das sich speziell mit Analysetechniken für Java-Anwendungen beschäftigt. Der Profiler nutzt diese Methoden, um zur Laufzeit dynamisch den Bytecode zu untersuchen und auszuwerten. Dadurch kann er auch komplexe und große Java-Anwendungen behandeln.
Der Profiler nutzt für eine geringe Belastung der Laufzeittests eine dynamische Laufzeit-Instrumentalisierung. Dabei bleibt das gespeicherte Programm unangetastet. Die Profiler-Marken für die statistischen Auswertungen werden vor dem Ausführen im Arbeitsspeicher hinzugefügt. Mitdynamisch ist gemeint, dass die Instrumentalisierung jederzeit aktiviert und deaktiviert werden kann, ohne eine Anwendung beenden oder neu starten zu müssen.
Das Projektsystem basiert auf einer starken Integration vonApache-Ant-Skripten. Diese können angepasst und auch mit einem Debugger untersucht werden.
Durch NetBeans werden folgendeVersionskontrollsysteme direkt unterstützt:[10]
Die Unterstützung fügt sich in den typischen Programmierworkflow ein und versteckt die abstrakte Bedienung mittels bekannter Befehle. Die IDE erkennt automatisch Arbeitsverzeichnisse und listet alle geänderten Dateien imVersioning Window auf. Die Versionsunterstützung ist ebenfalls in das Projektsystem und in die Refactoring-Funktionen integriert.
Typische Funktionen des Versionskontrollsystems sind direkt über das Kontextmenü zu erreichen. Die Verwaltung mehrerer Repositories und Branches ist auf einfache Weise möglich. DasVersioning Window zeigt einen Überblick über den Status von Dateien, Ordnern, Paketen und Projekten. Mit dem KommandoDiff können Unterschiede zwischen einzelnen Versionen angezeigt werden. Zusätzlich zum Quelltext können auch Projektmetadaten verteilt werden.
Zusätzlich zu den entfernten Versionkontrollsystemen führt NetBeans für jeden Quelltext eine sogenannteLocal History. Diese erlaubt, auch ohne die Unterstützung einer Versionskontrolle Änderungen am Quelltext zu verfolgen und gegebenenfalls rückgängig zu machen.
DasDeveloper Collaboration erlaubt es Entwicklern und Programmieren, zeitgleich und in Echtzeit in einer ArtChat-Modus an einer Anwendung zu entwickeln (synchrone Collaboration). Die angemeldeten Teammitglieder können jede Änderung direkt mitverfolgen, per Chat besprechen,Code Reviews durchführen oder auch das Projekt kompilieren. Wenn ein Teamserver in NetBeans konfiguriert ist erlaubt dies zusätzlichen Informationsaustausch mit Hilfe von Trackern, Documentshares und Foren (asynchrone Collaboration).[11]
Die IDE bringt Assistenten für die Entwicklung von Modulen für NetBeans IDE und anderen auf der NetBeans-Plattform basierenden Anwendungen mit. So ist es sehr einfach möglich, komplexeFat Clients zu entwickeln, die auf der NetBeans-Plattform gründen, oder auch Befehlserweiterungen für NetBeans zu programmieren.Jeder Benutzer kann eigene Module entwickeln und diese über denNetBeans Plugin Catalogue anderen zur Verfügung stellen.[8]
DieNetBeans Platform ist eineAnwendungs-Laufzeitumgebung und kann als Basis für generischeDesktop-Anwendungen auf Basis vonSwing genutzt werden[12] (zum Beispiel dieNetBeansIDE).Da die meisten Anwendungen ähnliche Anforderungen haben, wie zum BeispielMenüs, Dokumentenmanagement, Änderungen von Einstellungen und ähnliches, stellt die NetBeans-Plattform entsprechende Funktionen zur Verfügung. Der Entwickler erzeugt den Anwendungscode als ein oder mehrere NetBeans-Module und fügt diese der Plattform hinzu. So kann der Entwickler sich auf die Programmierung derGeschäftslogik als wesentliche Aufgabe konzentrieren. Die entstehende Anwendung ist plattformunabhängig.
Einige Eigenschaften der Plattform: