Apache NetBeans

Wednesday November 07, 2018
Tuesday October 23, 2018

Duke Choice Award 2018 for Apache NetBeans

During Oracle Open World 2018, Apache NetBeans was awarded a Duke's Choice Award, recognizing its innovation and the hard and dedicated work involved in moving NetBeans from Oracle to Apache.

A crowd of Apache NetBeans community members received the award on the stage from Georges Saab, VP of the Java Platform at Oracle.

Wednesday October 17, 2018

Apache NetBeans at Oracle Code One 2018

  • Saturday, Oct 20, 19:00 p.m. | Thirsty Bear, 661 Howard Street
    Informal hangout (i.e., buy your own beer) with Apache NetBeans PPMC, committers, and community!

  • Sunday, Oct 21, 11:00 a.m. | Bike Ride
    Go here for details: https://blog.idrsolutions.com/2018/09/open-invitation-to-bike-ride-at-oracle-codeone/.

  • Monday, Oct 22, 1:30 p.m. - 2:15 p.m. | Moscone West - Room 2016
    Title: Machine Learning for Software Developers in 45 Minutes [DEV5090]
    Speakers: Zoran Sevarac, Frank Greco

  • Monday, Oct 22, 1:30 p.m. - 2:15 p.m. | Moscone West - Room 2022
    Title: Back from the Ashes: eFX/JavaFX Applications Made Simple [DEV5406]
    Speakers: Sven Reimers, Florian Vogler

  • Monday, Oct 22, 2:30 p.m. - 3:15 p.m. | Moscone West - Room 2018
    Title: Exploring Java Heap Dumps [DEV5262]
    Speakers: Ryan Cuprak

  • Monday, Oct 22, 7:30 p.m. - 8:15 p.m. | Moscone West - Room 2005
    Title: Deep Learning for Application Performance Optimization [BOF4967]
    Speakers: Zoran Sevarac

  • Monday, Oct 22, 8:30 p.m. - 9:15 p.m. | Moscone West - Room 2009
    Title: Hacking the NetBeans IDE [BOF4760]
    Speakers: Mark Stephens, Developer, Bethan Palmer

  • Tuesday, Oct 23, 7:30 p.m. - 8:15 p.m. | Moscone West - Room 2010
    Title: Writing Better Code (Faster) in the Apache NetBeans IDE [BOF4759]
    Speakers: Mark Stephens, Developer, Bethan Palmer

  • Tuesday, Oct 23, 7:30 p.m. - 8:15 p.m. | Moscone West - Room 2014
    Title: Got a Gig Teaching Java? You Should Be Using Apache NetBeans in the Classroom [BOF4820]
    Speakers: Kenneth Fogel, Instructor, Concordia University

  • Wednesday, Oct 24, 2:30 p.m. - 3:15 p.m. | Moscone West - Room 2016
    Title: Bridging Swing and JavaFX on an Enterprise Scale [DEV6080]
    Speakers: Sven Reimers, José Pereda

  • Wednesday, Oct 24, 9:00 a.m. - 9:45 a.m. | Moscone West - Room 2010
    Title: Java Debugging Tips [DEV4512]
    Speakers: Martin Skarsaune

  • Wednesday, Oct 24, 2:45 p.m. - 4:45 p.m. | Moscone West - Room 2001A (HOL)
    Title: Lambda Programming Laboratory - BYOL [HOL6006]
    Speakers: Jeff Dinkins, Stuart Marks, Maurice Naftalin, José Paumard

  • Thursday, Oct 25, 09:00 AM - 11:00 AM | Moscone West - Overlook 2A (HOL)
    Title: Jakarta EE Hands-on Lab - BYOL [HOL4852]
    Speakers: David Heffelfinger, Bob Larsen

Wednesday October 10, 2018

Initial Language Server Protocol Support in Apache NetBeans 10

Did you know that the first stage of Language Server Protocol (LSP) support will be included in Apache NetBeans 10?

See this PR for details, with instructions for how to use it.


Some screenshots for Kotlin support via LSP:

Screen Shot 2018-10-10 at 12.45.19.png

Screen Shot 2018-10-10 at 12.46.41.png

Screen Shot 2018-10-10 at 12.37.39.png

A lot more work needs to be done, of course, some of which is here, you're welcome to join in:


Monday October 01, 2018

PHP 7.3 Support

Hi all. Today, we will briefly show you about PHP7.3 support which will be available in the next NetBeans version i.e. NetBeans 10.

First of all, I strongly hope that new features are tested by PHP users before NetBeans 10 is released because there should be bugs. Definitely, need your help! If you are interested in them, just test them. You can download a dev version here.

PHP 7.3 Support

To enable it, you have to set PHP 7.3 as the PHP version of your PHP project.


NetBeans provides support for the new three syntaxes.

Allow a trailing comma in function calls


list() Referenct Assignment


Flexible Heredoc and Nowdoc Syntaxes


Note: We won't provide support for the old syntax any longer. i.e. NetBeans treats the following code as an error.

$heredoc = <<< END

PHP 7.1, 7.2 and more PHP features

The other PHP features for NetBeans 10 are here. We have also implemented PHP7.1, 7.2, new hints, new code foldings and more.

That's all for today. As always, please test it. You can download a development version from Jenkins Build. If you find some issues or enhancements, please report them to JIRA with your exact steps to reproduce them. (Components: php - Editor). Thanks.

Wednesday September 26, 2018

PHPStan Support

Hi all. Today, we will show you about PHPStan integration which will be available in the next NetBeans version i.e. NetBeans 10 as a new code analysis feature. If you have already used other code analysis features(e.g. Code Sniffer), you should be able to use this with similar way soon.


First of all, let's set the Options (Tools > Options > PHP > Code Analysis > PHPStan). You can set a script path, a configuration file path and a level. At least you have to set the PHPStan script path to "PHPStan". If you don't set "Configuration" path, the configuration file of project root directory would be used.


Inspect project/directory/file

Then, let's inspect a project/direcoty/file using PHPStan. Please click "Source > Inspect...". The inspect dialog is shown.


Please choose "Scope" which you would like to inspect and PHPStan as "Configuration". The files are inspected when you click the "inspect" button. Finally, The results are shown in the inspector window after the inspection is done.


That's all for today. As always, please test it. You can download a development version from Jenkins Build. If you find some issues or enhancements, please report them to JIRA (Components: php - Code). Thanks.

Thursday September 06, 2018

Audio of Virtual Apache NetBeans Meeting 3

The third of a series of informal virtual meetups took place today, focused specifically on why/how/when to move netbeans.org to Apache.

The audio of the meeting is available here and takes about 53 minutes:


Screenshot of what we saw of each other, partly:

Related links:

Wednesday September 05, 2018

Apache NetBeans Guest Blog: Edward M. Kagan

I'm a big fan of NetBeans, and a team-lead of 2pm.tech crew, a group of independent developers from Russia. For about the last five years, we have been using NetBeans in all of our projects, from "hardcore C embedded systems" to "Grails web-apps", and as a result we've also been hacking NetBeans a little.

As of 2018, there are now 11 developers in the team. Currently, half of us work with Grails apps, despite the poor Grails support in NetBeans at the moment. We're continuing to work with NetBeans due to it simplicity, small footprint, and design. If the NetBeans community would dig up the Groovy/Grails support, lots of developers will switch to NetBeans I think, and also I'll be very happy, too. :-)

One of coolest things we've created lately is the Crew Look & Feel plugin, which we hadn't released to the public yet and now we think the time has come. It's not too complicated, but a nice little add-in to have, maybe it'll be useful for other users too. Here it is on the Plugin Portal:


Click to enlarge the images below, to get a feel for the new plugin that provides our look and feel:



NetBeans is my favorite IDE and Apache is one of my technological icons. So, I'm very happy for NetBeans to be migrating to Apache. Apache does not always give you a sweet design, though it does always provide nice UNIX-like tools, and I love it. I hope Apache will make NetBeans not only better, but the best IDE for all Java-based technologies. :-)

Thursday August 30, 2018

[PHP] Conditional breakpoints and new Twig features

Hi all. Today, we will show you some new features which will be available in the next NetBeans version, maybe (NetBeans 10? NOTE: we cannot promise anything about release contents at the moment).

First of all, if you would like to try new features, please build NetBeans yourself.

git clone git@github.com:apache/incubator-netbeans.git
cd incubator-netbeans
ant -Dcluster.config=full
(or ant -Dcluster.config=php)

You can find the start-up files in the nbbuild/netbeans/bin directory if the build succeeds. So please run it.

Debugger: Conditional breakpoints

You can stop the debugger if the context matches your condition. i.e. If the condition is true, the debugger stops on the breakpoint, otherwise, it does not stop there.

I assume that you have already done the settings for debugging. (please see: HowToConfigureXDebug) If xdebug doesn't work, please ask someone via Apache NetBeans mailing lists. (Please don't ask here.)

Just in my case(Ubuntu 18.04):

sudo apt install php-xdebug
sudo vim /etc/php/7.2/mods-available/xdebug.ini

# Change to the following

Let's try running with a sample code(index.php):

<!DOCTYPE html>
<meta charset="UTF-8">
    $array = ["foo", "bar", "baz", "qux"];
    foreach ($array as $value) {
        echo $value;

Step 1: Enable a breakpoint

You can enable it when you click a line number.


Step 2: Show the Breakpoint Properties dialog

To show it, please right-click the breakpoint, then please click Breakpoint > Properties.



Step 3: Input a condition

Please check "Condition" and input your condition to the combo box, then click the OK button.


Step 4: Run Debug Project

Please click Debug > Debug Project or the icon on the toolbar.

In this case, the debugger stops on the breakpont if $value is "baz".


Twig: Code completion for delimiters, brackets, and quotes

Twig editor supports code completion for delimeters({{ and {%), brackets([, (, and {), and quotes(" and '). This feature is enabled by default. If you would like to disable, please uncheck the options (Tools > Options > Editor > Code Completion > Language: Twig File).



Twig: Palette support

You can show the palette window. Please click Window > IDE Tools > Palette.


That's all for today. As always, please test it. If you find some issues or enhancements, please report them to JIRA (Components: php - Debugger, php - Twig). Thanks.

Tuesday August 21, 2018

Audio of Virtual Apache NetBeans Meeting 2

The second of a series of informal virtual meetups took place today.

The audio of the meeting is available here and takes about 45 minutes:


Sign up to the next virtual meetups here:


Thursday August 16, 2018

NetBeans Status at InfoQ

Today an article was published on InfoQ describing the current state and progress of Apache NetBeans.

Click to read the start of it here:

Screen Shot 2018-08-21 at 11.24.28.png

Go here to read it all:


Tuesday August 07, 2018

Audio of Virtual Apache NetBeans Meeting 1

The first of a series of informal virtual meetups took place today.

The audio of the meeting is available here and takes about an hour:


Sunday July 29, 2018

[ANNOUNCE] Apache NetBeans (incubating) 9.0 Released

The Apache NetBeans team is proud to announce the release of Apache NetBeans (incubating) 9.0.

Apache NetBeans (incubating) 9.0 constitutes all the modules in the Apache NetBeans Git repo, which together provide the NetBeans Platform (i.e., the underlying application framework), as well as all the modules that provide the Java SE-related features of Apache NetBeans. In short, Apache NetBeans (incubating) 9.0 is a full IDE for Java SE development.

Read more on our download page:


New & Noteworthy features of the 9.0 Release:


See the below for the donation status of features that have not been donated or included in Apache builds yet, i.e., are not part of Apache NetBeans (incubating) 9.0, e.g., features for working with Java EE, JavaScript, PHP, C/C++, and more:


Also see:

What's Happened to My Favorite NetBeans Plugins?

Work is being done on bringing netbeans.org to Apache. In the meantime, refer to the below for all details related to Apache NetBeans:


Disclaimer: Apache NetBeans is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Sunday July 22, 2018

What's "nb-javac" in Apache NetBeans?

Not long after you start up Apache NetBeans (incubating) 9.0 on top of JDK 8, after accepting the license agreement and handling import settings, you're confronted with this dialog:

What does that mean? And why, when you start up Apache NetBeans (incubating) 9.0 on top of JDK 9 or above, do you see the following, instead:

Note: The above appears in a balloon popup in the bottom right the first time you start up Apache NetBeans (incubating) 9.0 on JDK 9 or above. If you miss out on seeing or responding to the message, go to Window | IDE Tools | Notifications anytime afterwards and you'll have another opportunity to install it:

Let's start by looking at the question, what is "nb-javac"? Well, "nb-javac", which is a patched version of "javac", i.e., the Java compiler, has long been part of NetBeans, providing a highly tuned Java compiler specifically for the Java editor in NetBeans, and wasn't part of the donation of NetBeans to Apache since, of course, the Java compiler (or a fork thereof) cannot be part of the donation. That's because Oracle is not donating Java to Apache, instead, it is donating NetBeans. The Java compiler belongs to the JDK which is licensed to Oracle.

Separate from Oracle's obvious understandable unwillingness to donate a Java compiler fork to Apache, or anyone else, Apache would have a problem with a fork of the Java compiler being distributed from Apache since the Java compiler is LGPL licensed.

In short, neither Oracle nor Apache want the Java compiler to be part of NetBeans in Apache. Yet, NetBeans gains a lot from the patched Java compiler, as explained below:


Also see this reference for details on the situation:


However, using model APIs added in JDK 9, Apache NetBeans can make use of the Java compiler directly from the JDK, as explained here:


So, as can be seen, from Apache NetBeans running on JDK 9 and onwards, you have a choice: either use the Java compiler from the JDK, which means you're not benefiting from a number of enhancements especially added for NetBeans over many years in the patched Java compiler, or you need to explicitly add the patched Java compiler, since it is provided by Oracle and its licensing is such that you need to take responsibility for installing it yourself. On the other hand, if you're using Apache NetBeans with JDK 8, the choice is simpler, i.e., you need to install nb-javac, otherwise you will not be able to use Java in Apache NetBeans.

It's not an ideal situation. On the other hand, if someone has a better solution, please feel free to propose that solution and also consider providing a pull request too!

Friday July 20, 2018

What's Happened to My Favorite NetBeans Plugins?

So, you start up Apache NetBeans (incubating) 9.0 and... you find that when you go to the New Project wizard, or when you try to open your projects, that there's no support for your JavaScript, PHP, Groovy, enterprise Java (i.e., Java EE or, as it is known now, Jakarta EE), and C/C++ projects.

What's the reason for that and what can be done?

Well, Apache NetBeans (incubating) 9.0 is specifically focused on Java SE only. Why? Because NetBeans is extremely large (it will be by far the largest project in Apache, once everything has been donated), which is because it has existed for over 20 years and provides support for a very wide range of technologies. Since so many files all needed to be audited before they could be donated to Apache, the decision was made to donate NetBeans in pieces, i.e., not everything at the same time because that would have taken much too long.

And since NetBeans is modular, doing an incremental donation was not difficult to architect. The first donation focused specifically on the underlying core, i.e., the NetBeans Platform (e.g., the module system, window system, menubar, etc etc) and, to enable the result of the first donation to be usable for general users and not just NetBeans Platform developers, the various Java SE features were included too, e.g., Java project templates, Java editor, and new Java features such as support for Jigsaw, JLink, and JShell.

The above is what Apache NetBeans (incubating) 9.0 consists of. In the meantime, the second donation has been completed, i.e., Oracle has audited and donated all the modules for features providing support for JavaScript, PHP, Groovy, and enterprise Java (i.e., Java EE or, as it is known now, Jakarta EE). These features are on a separate branch in the Apache NetBeans Git repo. They will be integrated, i.e., relicensed to Apache, after Apache NetBeans (incubating) 9.0 is released. After that, the next set of modules that is being audited prior to donation are related to C/C++.

So, does that mean that all the features that are not integrated into Apache NetBeans (incubating) 9.0 cannot be used? No, it does not. Go to Tools | Plugins in Apache NetBeans (incubating) 9.0 and, in the Settings tab, register the NetBeans IDE 8.2 update center:


Then go to the Available Plugins tab and you'll see all the plugins for NetBeans IDE 8.2., and search for the word "Kit", which will give you bundles of modules, for higher-level features such as C/C++, JavaScript, Groovy, PHP, and enterprise Java (i.e., Java EE or, as it is known now, Jakarta EE).

Though note that none of these features have been tested with Apache NetBeans (incubating) 9.0, they should work, in most cases. If not, don't panic. Just sign up to the Apache NetBeans mailing lists, as explained at netbeans.apache.org, and start a new thread where you'll highlight some problem you've encountered, after which someone will help you or you'll be advised to create a new issue in Apache NetBeans Issuezilla.

Where is all this documented, how can anyone know what will be donated in which order, etc? Easy, go here, to the end of this page:




Hot Blogs (today's hits)

Tag Cloud