| <!doctype html> |
| <html class="no-js" lang="en" dir="ltr"> |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="x-ua-compatible" content="ie=edge"> |
| <title>Apache NetBeans (incubating) 9.0 Features</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <meta name="description" content="Apache NetBeans 9.0 (incubating) features"> |
| <meta name="author" content="Apache NetBeans"> |
| <meta name="description" content="Apache NetBeans 9.0 (incubating) features"> |
| <meta name="keywords" content="Apache NetBeans 9.0 IDE features"> |
| <meta name="generator" content="Apache NetBeans"> |
| <link rel="stylesheet" href="../../../../_/css/font-awesome.min.css"> |
| <link rel="alternate" type="application/atom+xml" title="Apache NetBeans Blog" href="https://netbeans.apache.org/blogs/atom" /> |
| |
| <link rel="stylesheet" href="../../../../_/css/netbeans.css"> |
| <link rel="apple-touch-icon" sizes="180x180" href="../../../../_/images/fav/apple-touch-icon.png"> |
| <link rel="icon" type="image/png" sizes="32x32" href="../../../../_/images/fav/favicon-32x32.png"> |
| <link rel="icon" type="image/png" sizes="16x16" href="../../../../_/images/fav/favicon-16x16.png"> |
| <link rel="manifest" href="../../../../_/images/fav/site.webmanifest"> |
| <link rel="mask-icon" href="../../../../_/images/fav/safari-pinned-tab.svg" color="#5bbad5"> |
| <meta name="msapplication-TileColor" content="#ffc40d"> |
| <meta name="theme-color" content="#ffffff"> |
| <link href="../../../../_/css/font-open-sans.css" rel="stylesheet"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| http://www.apache.org/licenses/LICENSE-2.0 |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| </head> |
| <body> |
| <div class="title-bar" data-responsive-toggle="responsive-menu" data-hide-for="medium"> |
| <button type="button" data-toggle="responsive-menu"><i style='font-size: 32px; color: #fff; padding: 8px' class='fa fa-bars'></i></button> |
| <div class="title-bar-title">Apache NetBeans</div> |
| </div> |
| <div class="top-bar" id="responsive-menu"> |
| <div class='top-bar-left'> |
| <a class='title' href="../../../../index.html"><img src='../../../../_/images/apache-netbeans.svg' style='padding: 8px; height: 48px;'> Apache NetBeans</a> |
| </div> |
| <div class="top-bar-right"> |
| <ul class="vertical medium-horizontal menu" data-responsive-menu="drilldown medium-dropdown"> |
| <li> <input id="search-input" type="text" placeholder="Search the docs"> </li> |
| <li> <a href="../../../../front/main/community">Community</a> </li> |
| <li> <a href="../../../../front/main/participate">Participate</a> </li> |
| <li> <a href="../../../../front/main/blogs">Blog</a></li> |
| <li> <a href="../../../../front/main/help">Get Help</a> </li> |
| <li> <a href="https://plugins.netbeans.apache.org/">Plugins</a> </li> |
| <li> <a href="../../../../front/main/download">Download</a> </li> |
| </ul> |
| </div> |
| </div> |
| |
| <!-- src/templates/news --> |
| <section class="hero news alternate"> |
| <div class='grid-container'> |
| <div class='cell'> |
| <div class="annotation">Latest release</div> |
| <h1>Apache NetBeans 22</h1> |
| <p><a class="button success" href="../../../../front/main/download/nb22">Download</a></p> |
| </div> |
| </div> |
| </section> |
| <div class='grid-container main-content'> |
| <article class="doc"> |
| <h1 class="sect0">Apache NetBeans (incubating) 9.0 Features</h1> |
| <div id="toc" class="toc"> |
| <div id="toctitle"></div> |
| <ul class="sectlevel1"> |
| <li><a href="#_supporting_local_variable_type_inference">Supporting Local Variable Type Inference</a></li> |
| <li><a href="#_supporting_the_jigsaw_module_system">Supporting the Jigsaw Module System</a></li> |
| <li><a href="#_a_brand_new_java_modular_application_project_type">A brand new Java Modular Application project type</a></li> |
| <li><a href="#_java_shell_support">Java Shell support</a></li> |
| </ul> |
| </div> |
| <div id="preamble"> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Apache NetBeans 9.0 is the first release of the Apache NetBeans IDE, it was released |
| on July 2018. <a href="nb90/" class="xref page">Click here to download</a> this release.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The main goals for this release are IP clearance of the Oracle code donation and Java 9 and Java 10 Support.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Features include:</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_supporting_local_variable_type_inference"><a class="anchor" href="#_supporting_local_variable_type_inference"></a>Supporting Local Variable Type Inference</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>New hints, error handlers, and refactorings for transforming to/from the new JDK 10 "var" type:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>New Hint to convert explicit variable type to 'var'.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="image2018-5-30_12-38-55.png"><img src="../../_images/download/nb90/image2018-5-30_12-38-55.png" alt="New Hint to convert explicit variable type to 'var'" title="New Hint to convert explicit variable type to 'var'"></a></span></p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>New Hint to Convert var type back to explicit type.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="image2018-5-30_12-45-4.png"><img src="../../_images/download/nb90/image2018-5-30_12-45-4.png" alt="New Hint to Convert var type back to explicit type" title="New Hint to Convert var type back to explicit type"></a></span></p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>New Error hint to split compound 'var' declaration.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>Var is not supported in a compound variable declaration. This fix helps correct compilation error by splitting declaration into separate statements.</p> |
| </div> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="image2018-5-30_13-34-39.png"><img src="../../_images/download/nb90/image2018-5-30_13-34-39.png" alt="New Error hint to split compound 'var' declaration" title="New Error hint to split compound 'var' declaration"></a></span></p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>New Error Hint for var Array declaration.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>Var type is not supported for array initializer. This hint helps correct compilation errors by converting to explicit type by inferring the type of data in an array. This currently handles arrays of primitive or homogeneous types.</p> |
| </div> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="invalidArray.png"><img src="../../_images/download/nb90/invalidArray.png" alt="New Error Hint for var Array declaration" title="New Error Hint for var Array declaration"></a></span></p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_supporting_the_jigsaw_module_system"><a class="anchor" href="#_supporting_the_jigsaw_module_system"></a>Supporting the Jigsaw Module System</h2> |
| <div class="sectionbody"> |
| <div class="openblock feature"> |
| <div class="content"> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="nb90-module-info.png"><img src="../../_images/download/nb90/nb90-module-info.png" alt="Adding module-info.java" title="Adding module-info.java"></a></span></p> |
| </div> |
| <div class="paragraph"> |
| <p>NetBeans 9 supports <a href="https://openjdk.org/projects/jigsaw/spec/">JPMS (Jigsaw)</a>.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Modulepath was added as a paradigm to NetBeans in addition to Classpath.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The standard NetBeans Java SE Project Type (Ant based) can be a single JDK 9 module simply by adding a <code>module-info.java</code> file into the default package.</p> |
| </div> |
| </div> |
| </div> |
| <div class="openblock feature"> |
| <div class="content"> |
| <div class="paragraph"> |
| <p><span class="image right"><a class="image" href="nb90-module-info-completion.png"><img src="../../_images/download/nb90/nb90-module-info-completion.png" alt="Autocompletion in module-info.java" title="Autocompletion in module-info.java"></a></span></p> |
| </div> |
| <div class="paragraph"> |
| <p>Of course, we provide full autocompletion for <code>module-info.java</code></p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_a_brand_new_java_modular_application_project_type"><a class="anchor" href="#_a_brand_new_java_modular_application_project_type"></a>A brand new Java Modular Application project type</h2> |
| <div class="sectionbody"> |
| <div class="openblock feature"> |
| <div class="content"> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="nb90-new-multi-module.png"><img src="../../_images/download/nb90/nb90-new-multi-module.png" alt="Java Modular Application" title="New Java Modular Application Project Type"></a></span></p> |
| </div> |
| <div class="paragraph"> |
| <p>We have added a new <strong>Java Modular project</strong> type. This allows to develop |
| several JDK9 modules in one NetBeans project (Ant based).</p> |
| </div> |
| <div class="paragraph"> |
| <p>The advantage of this project type over several Java SE projects (each |
| containing one module) is that dependencies are simply managed by declaring |
| appropriate <code>exports</code> and <code>requires</code> in <code>module-info.java</code>, and all modules |
| in the project will be compiled at once.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_java_shell_support"><a class="anchor" href="#_java_shell_support"></a>Java Shell support</h2> |
| <div class="sectionbody"> |
| <div class="openblock feature"> |
| <div class="content"> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="nb90-javashell.png"><img src="../../_images/download/nb90/nb90-javashell.png" alt="Java Shell Support" title="Java Shell Support"></a></span></p> |
| </div> |
| <div class="paragraph"> |
| <p>Java Shell is a new tool included in JDK9 defined in <a href="https://openjdk.org/jeps/222">JEP 222</a> to introduce REPL |
| (read-eval-print-loop) capabilities to Java.</p> |
| </div> |
| <div class="paragraph"> |
| <p>NetBeans provides integrated console-like UI for the Java Shell, leveraing NetBeans editor capabilites.</p> |
| </div> |
| <div class="paragraph"> |
| <p>NetBeans can support the tool with the user project configuration, so the Java |
| Shell is set up to work with project classes and libraries, providing autocompletion out of the box in |
| the editor.</p> |
| </div> |
| </div> |
| </div> |
| <div class="openblock feature"> |
| <div class="content"> |
| <div class="paragraph"> |
| <p><span class="image right"><a class="image" href="nb90-shell-agent.png"><img src="../../_images/download/nb90/nb90-shell-agent.png" alt="Shell Agent Configuration" title="JShell acess configuration"></a></span></p> |
| </div> |
| <div class="paragraph"> |
| <p>Also NetBeans greatly extends the capabilities of the commandline tool. |
| NetBeans can execute the shell <strong>as an agent</strong>, similar to a debugging agent, on the |
| debugged or run application (currently only J2SE applications are supported, |
| both Ant and Maven-based).</p> |
| </div> |
| </div> |
| </div> |
| <div class="openblock feature"> |
| <div class="content"> |
| <div class="paragraph"> |
| <p><span class="image left"><a class="image" href="nb90-shell-save.png"><img src="../../_images/download/nb90/nb90-shell-save.png" alt="Saving JShell snippets" title="Saving JShell snippets"></a></span></p> |
| </div> |
| <div class="paragraph"> |
| <p>Snippets written in JShell can be redefined and tested, even against a running |
| code.</p> |
| </div> |
| <div class="paragraph"> |
| <p>When the prototype is ready, it can be saved to a regular Java source file |
| and integrated with the project.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <section class='tools'> |
| <ul class="menu align-center"> |
| <li><a title="Facebook" href="https://www.facebook.com/NetBeans"><i class="fa fa-md fa-facebook"></i></a></li> |
| <li><a title="Twitter" href="https://twitter.com/netbeans"><i class="fa fa-md fa-twitter"></i></a></li> |
| <li><a title="Github" href="https://github.com/apache/netbeans"><i class="fa fa-md fa-github"></i></a></li> |
| <li><a title="YouTube" href="https://www.youtube.com/user/netbeansvideos"><i class="fa fa-md fa-youtube"></i></a></li> |
| <li><a title="Atom Feed" href="https://netbeans.apache.org/blogs/atom"><i class="fa fa-mf fa-rss"></i></a></li> |
| <li><a title="Slack" href="https://tinyurl.com/netbeans-slack-signup/"><i class="fa fa-md fa-slack"></i></a></li> |
| <li><a title="Issues" href="https://github.com/apache/netbeans/issues"><i class="fa fa-mf fa-bug"></i></a></li> |
| </ul> |
| <ul class="menu align-center"> |
| <li><a href="https://github.com/apache/netbeans-antora-site/edit/main/modules/ROOT/pages/download/nb90/index.adoc" title="See this page in github"><i class="fa fa-md fa-edit"></i> See this page in GitHub.</a></li> |
| </ul> |
| </section> |
| </article> |
| </div> |
| <div class='grid-container incubator-area' style='margin-top: 64px'> |
| <div class='grid-x grid-padding-x'> |
| <div class='large-auto cell text-center'> |
| <a href="https://www.apache.org/"> |
| <img style="width: 320px" title="Apache Software Foundation" src="../../../../_/images/asf_logo_wide.svg" /> |
| </a> |
| </div> |
| <div class='large-auto cell text-center'> |
| <a href="https://www.apache.org/events/current-event.html"> |
| <img style="width:234px; height: 60px;" title="Apache Software Foundation current event" src="https://www.apache.org/events/current-event-234x60.png"/> |
| </a> |
| </div> |
| </div> |
| </div> |
| <footer> |
| <div class="grid-container"> |
| <div class="grid-x grid-padding-x"> |
| <div class="large-auto cell"> |
| <h1><a href="../../../../front/main/about">About</a></h1> |
| <ul> |
| <li><a href="../../../../front/main/community/who">Who's Who</a></li> |
| <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="https://www.apache.org/security/">Security</a></li> |
| </ul> |
| </div> |
| <div class="large-auto cell"> |
| <h1><a href="../../../../front/main/community">Community</a></h1> |
| <ul> |
| <li><a href="../../../../front/main/community/mailing-lists">Mailing lists</a></li> |
| <li><a href="../../../../front/main/community/committer">Becoming a committer</a></li> |
| <li><a href="../../../../front/main/community/events">NetBeans Events</a></li> |
| <li><a href="https://www.apache.org/events/current-event.html">Apache Events</a></li> |
| </ul> |
| </div> |
| <div class="large-auto cell"> |
| <h1><a href="../../../../front/main/participate">Participate</a></h1> |
| <ul> |
| <li><a href="../../../../front/main/participate/submit-pr">Submitting Pull Requests</a></li> |
| <li><a href="../../../../front/main/participate/report-issue">Reporting Issues</a></li> |
| <li><a href="../../../../front/main/participate/#documentation">Improving the documentation</a></li> |
| </ul> |
| </div> |
| <div class="large-auto cell"> |
| <h1><a href="../../../../front/main/help">Get Help</a></h1> |
| <ul> |
| <li><a href="../../../../front/main/help/#documentation">Documentation</a></li> |
| <li><a href="../../../../wiki/main/wiki">Wiki</a></li> |
| <li><a href="../../../../front/main/help/#support">Community Support</a></li> |
| <li><a href="../../../../front/main/help/commercial-support">Commercial Support</a></li> |
| </ul> |
| </div> |
| <div class="large-auto cell"> |
| <h1><a href="../../../../front/main/download">Download</a></h1> |
| <ul> |
| <li><a href="../../../../front/main/download">Releases</a></li> |
| <li><a href="https://plugins.netbeans.apache.org/">Plugins</a></li> |
| <li><a href="../../../../front/main/download/#_daily_builds_and_building_from_source">Building from source</a></li> |
| <li><a href="../../../../front/main/download/#_older_releases">Previous releases</a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </footer> |
| <div class='footer-disclaimer'> |
| <div class="footer-disclaimer-content"> |
| <p>Copyright © 2017-2024 <a href="https://www.apache.org">The Apache Software Foundation</a>.</p> |
| <p>Licensed under the Apache <a href="https://www.apache.org/licenses/">license</a>, version 2.0</p> |
| <div style='max-width: 40em; margin: 0 auto'> |
| <p>Apache, Apache NetBeans, NetBeans, the Apache feather logo and the Apache NetBeans logo are trademarks of <a href="https://www.apache.org">The Apache Software Foundation</a>.</p> |
| <p>Oracle and Java are registered trademarks of Oracle and/or its affiliates.</p> |
| <p>The Apache NetBeans website conforms to the <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Apache Software Foundation Privacy Policy</a></p> |
| </div> |
| </div> |
| </div> |
| |
| |
| <script src="../../../../_/js/vendor/lunr.js"></script> |
| <script src="../../../../_/js/search-ui.js" id="search-ui-script" data-site-root-path="../../../.." data-snippet-length="100" data-stylesheet="../../../../_/css/search.css"></script> |
| <script async src="../../../../search-index.js"></script> |
| <script src="../../../../_/js/vendor/jquery-3.7.1.min.js"></script> |
| <script src="../../../../_/js/vendor/what-input.js"></script> |
| <script src="../../../../_/js/vendor/foundation.min.js"></script> |
| <script src="../../../../_/js/vendor/jquery.colorbox-min.js"></script> |
| <script src="../../../../_/js/netbeans.js"></script> |
| <script> |
| $(function(){ $(document).foundation(); }); |
| </script> |
| </body> |
| </html> |