Over a million developers have joined DZone.

Create a Commercial-Quality IDE

· Java Zone

Learn more about Kotlin, a new programming language designed to solve problems that software developers face every day brought to you in partnership with JetBrains.

What does it take to create a complete development environment for a technology or language? Well, a lot of work, starting with planning, then setting up a sustainable architecture, after which you can start coding the various features you need.

Let's use the infrastructure of NetBeans IDE as the basis of our own IDE. That means we'll remove everything that makes NetBeans IDE distinct, leaving us with an empty shell that we can refill with our own specific needs.

  1. Open NetBeans IDE and choose File | New Project. Then choose NetBeans Modules | NetBeans Platform Application. Name the new application "My IDE" and specify where its files should be stored. Click Finish. You now see a project structure in the NetBeans IDE Projects window.

  2. Right-click the new project structure and choose Properties. In the Properties window, go to Libraries and check the three check boxes shown below:

  3. Run the application and you will see the following:

    Open a few windows and have a look at all the features you have out of the box, e.g., the starting point for a custom project system, the starting point for a custom menu bar and toolbar, a custom debugger, a terminal window, and much more:

  4. Go to the NetBeans Platform Learning Trail to learn all the different ways in which you can extend the above infrastructure with your custom contributions.

For inspiration, see what Microchip has done, i.e., created their own IDE on top of the above infrastructure, as well as many others.

The Java Zone is brought to you in partnership with JetBrains.  Discover how powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience.

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}