<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>NetBeans IDE 5.5 Release Notes and System Requirements</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <meta name="description" content="NetBeans IDE 5.5  Release Notes: 
        System Requirements, Compatibility, Known Issues, Documentation">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

        <a name="top"></a>
        <h1>NetBeans IDE 5.5 Release Notes </h1>

        <blockquote> 
            <p>Welcome to NetBeans IDE 5.5. NetBeans
            IDE is a modular, standards-based integrated development environment (IDE),
            written in the Java programming language.
            The NetBeans project consists of: </p>
            <ul>
                <li>An <a href="https://netbeans.org/features/ide/index.html">open source 
                IDE</a> written in the Java programming language.</li>
                <li>An <a href="https://netbeans.org/features/platform/index.html">application 
                platform</a>, which can be used as a generic framework to build any kind 
                of application.</li>
                <li>Add-on packs, such as <a href="https://netbeans.org/features/javame/index.html">Mobility</a>  
                and <a href="https://netbeans.org/features/java/profiler.html">Profiler</a> 
                that enable you to extend NetBeans IDE's functionality.
            </ul>
            
            <br>
            <div class="greybox">
                <p>For release information about NetBeans Add-on packs, see: </p>
                <ul>
                    <li><a href="https://netbeans.org/community/releases/55/relnotes-mobility.html">Mobility Pack Release Notes</a></li>
                    <li><a href="http://profiler.netbeans.org/relnotes.html">Profiler Release Notes</a></li>
                    <li><a href="https://netbeans.org/community/releases/55/vwp-release-notes.html">Visual Web Pack Release Notes</a></li>
                    <li><a href="https://netbeans.org/community/releases/55/entpack_relnotes.html">Enterprise Pack Release Notes</a></li>
                    <!--<li><a href="https://netbeans.org/community/releases/55/">C/C++ Pack Release Notes</a></li>-->
                    <li><a href="../../../../community/releases/55/uml-relnotes.html">UML Modeling Module Release Notes</a></li>
                </ul>
            </div>               
            
        <br>
        <h2 style="color:#0E1B55">Contents</h2>
        <ul>
            <li><a href="#supported_technologies">Supported Technologies</a></li>
            <li><a href="#system_requirements">System Requirements</a>
            <li><a href="#compatibility">Compatibility</a></li>
            <li><a href="#known_issues">Known Issues </a></li>
            <li><a href="#documentation">Documentation</a></li>
            <li><a href="#more_info">More Information</a></li>
        </ul>
                <p><b>Note: </b>If you are looking for information about installing 
                the NetBeans IDE 5.5, see the <a href="install.html">NetBeans 
                IDE 5.5 Installation Instructions</a>.</p>
        <!--<br>
            <p>For information about new development features
            in NetBeans IDE, see <a href="https://netbeans.org/community/releases/55/index.html">
            What's New in NetBeans IDE 5.5 .</a></p>-->
                       
        </blockquote>
        <br>
        
        <a name="supported_technologies"></a>
        <h2>Supported Technologies</h2>
        <blockquote>
        <br>
        <p><b>NetBeans IDE 5.5  supports the following technologies:</b></p>
            <ul>
                <li>Enterprise JavaBeans (EJB) 3.0</li>
                <li>JAX-WS 2.0</li>
                <li>Java Persistence (JSR-220)</li>
                <li>JavaServer Faces 1.2 (JSR-252)</li>
                <li>Java Servlet 2.5</li>
                <li>JavaServer Pages (JSP) 2.1</li>
                <li>Struts 1.2.9</li>
                <li>Java API for XML-based Remote Procedure Calls (JAX-RPC) 1.1</li>
                <li>Java APIs for XML Registries (JAXR) 1.0</li>
                <li>Java API for XML Processing (JAXP) 1.2</li>
                <li>JavaServer Pages Standard Tag Library 1.1</li>
            </ul>
            <br>
            <div class="greybox" style="border:1">
                <p><b>Note:</b> using versions of JBoss, WebLogic, or Struts
                other than those explicitly listed could result in unpredictable IDE behavior 
                because they are External interfaces and not controlled by the project team. </p>
            </div>  
            
        <p><b>NetBeans IDE 5.5  has been tested with the following application servers:</b></p>
            <ul>
                <li>Sun Java System Application Server PE 9.0 Update Release 1</li>
                <!--<li>Sun Java System Application Server PE 8.1 update 2</li>-->
                <li>Sun Java System Application Server PE 8.2</li>
                <li>Tomcat 5.5.17</li>
                <li>JBoss 4.0.4</li>
                <li>WebLogic 9.1</li>
            </ul>

            <br>
            <div class="greybox">
                <p>If you are using the GlassFish application server, note that it is recommended to 
                run the final build of GlassFish V1 UR1 (build 14) in order to work with NetBeans IDE 5.5 .</p>
            </div>  
            
        </blockquote>
        <p align="center"><a href="#top">top</a></p><br>

        <a name="system_requirements"></a>
        <h2>System Requirements</h2>
        <blockquote> 
            <!--<a name="req_os"></a>-->
            <h5 style="border-bottom:0">Supported Operating Systems</h5>
            <p>NetBeans IDE runs on operating systems that support the Java 
            VM. Below is a list of platforms that NetBeans IDE has been tested on. 
            <ul>
                <li>Microsoft Windows XP Professional SP2</li>
                <li>Solaris operating system (SPARC and x64 Platform Editions)
                version 10</li>
                <li>Mac OS X 10.4.5 PPC</li>
                <li>Red Hat Fedora Core 3 (except when running in the zh_CN locale and possibly other Asian locales) </li>
            </ul>
            <p>NetBeans IDE is also known to run on the following platforms: 
            <ul><li>Java Desktop System 2</li>
                <li>Microsoft Windows 2000 Professional SP4 </li>
                <li>Mac OS X 10.4.5 Intel</li>
                <li>Various other Linux distributions, such as Red Hat Enterprise Linux </li>
                <li>Open VMS 7.2-1 or later</li>
                <!--<li>Other UNIX<sup>&reg;</sup> platforms, such as HP-UX 
                    <p><b>Note:</b> the Sun Java System Application Server may not run on certain
                    platforms. 
                </li>-->
            </ul>         
            
            <a name="min_hw"></a>
            <h5 style="border-bottom:0">Minimum Hardware Configurations</h5>
            <br>
            <div class="greybox">
                <p><b>Note:</b> The IDE's minimum screen resolution is 1024x768 pixels.</p>
            </div>               
            
                <ul>
                    <li><b>Microsoft Windows operating systems</b>:
                        <ul>

                            <li><b>Processor: </b>500 MHz Intel Pentium III workstation or equivalent</li>
                            <li><b>Memory: </b>512 MB</li>
                            <li><b>Disk space: </b>850 MB of free disk space </li>
                        </ul><br>
                    </li>
                    <li><b>Linux operating system</b>:
                        <ul>

                            <li><b>Processor: </b>500 MHz Intel Pentium III workstation or equivalent</li>
                            <li><b>Memory: </b>512 MB</li>
                            <li><b>Disk space: </b>450 MB of free disk space</li>
                        </ul><br>
                    </li>
                    <li><b>Solaris OS (SPARC)</b>:
                        <ul>

                            <li><b>Processor: </b> UltraSPARC II 450 MHz</li>
                            <li><b>Memory: </b>512 MB</li>
                            <li><b>Disk space: </b>450 MB of free disk space</li>
                        </ul><br>
                    </li>

                    <li><b>Solaris OS (x86/x64 Platform Edition)</b>:
                        <ul>
                            <li><b>Processor: </b>AMD Opteron 100 Series 1.8 GHz</li>
                            <li><b>Memory: </b>512 MB</li>
                            <li><b>Disk space: </b>450 MB of free disk space</li>
                        </ul><br>

                    </li>
                    <li><b>Macintosh OS X operating system</b>:
                        <ul>
                            <li><b>Processor: </b>PowerPC G4</li>
                            <li><b>Memory: </b>512 MB</li>
                            <li><b>Disk space: </b>450 MB of free disk space </li>

                        </ul>
                    </li>
                </ul>
                
                <a name="req_hw"></a>
                <h5 style="border-bottom: 0pt none;">Recommended Hardware Configurations</h5>
                <ul>
                    <li><b>Microsoft Windows operating systems</b>:
                        <ul>

                            <li><b>Processor: </b>1.4 GHz Intel Pentium III workstation or equivalent</li>
                            <li><b>Memory: </b>1 GB</li>
                            <li><b>Disk space: </b>1 GB of free disk space </li>
                        </ul>
                        <br>
                    </li>

                    <li><b>Linux operating system</b>:
                        <ul>
                            <li><b>Processor: </b>1.4 GHz Intel Pentium III or equivalent</li>
                            <li><b>Memory: </b>1 GB</li>
                            <li><b>Disk space: </b>850 MB of free disk space</li>
                        </ul>

                        <br>
                    </li>
                    <li><b>Solaris OS (SPARC)</b>:

                        <ul>
                            <li><b>Processor: </b>UltraSPARC IIIi 1 GHz</li>
                            <li><b>Memory: </b>1 GB</li>

                            <li><b>Disk space: </b>850 MB of free disk space</li>
                        </ul>
                        <br>
                    </li>
                    <li><b>Solaris OS (x86/x64 platform edition)</b>:

                        <ul>
                            <li><b>Processor: </b>AMD Opteron 100 Series 1.8 GHz</li>

                            <li><b>Memory: </b>1 GB</li>
                            <li><b>Disk space: </b>850 MB of free disk space</li>
                        </ul>
                        <br>
                    </li>
                    <li><b>Macintosh OS X operating system</b>:
                        <ul>

                            <li><b>Processor: </b>PowerPC G5</li>
                            <li><b>Memory: </b>1 gigabyte</li>
                            <li><b>Disk space: </b>850 megabytes of free disk space </li>
                        </ul>
                    </li>
                </ul>


            <a name="req_sw"></a>
            <h5 style="border-bottom:0">Required Software</h5>
            <p>NetBeans IDE runs on the J2SE JDK 5.0 (Java SE Development Kit), 
            which consists of the Java Runtime Environment plus 
            developer tools for compiling, debugging, and running applications written 
            in the Java language. </p>

            <p>You can download the JDK for your platform from one of the sites listed
            below: </p>
            <ul>
                <li><b>Solaris</b>: <a href="http://java.sun.com/j2se/1.5.0/">http://java.sun.com/j2se/1.5.0/</a></li>
                <li><b>Windows</b>: <a href="http://java.sun.com/j2se/1.5.0/">http://java.sun.com/j2se/1.5.0/</a></li>
                <li><b>Linux</b>: <a href="http://java.sun.com/j2se/1.5.0/">http://java.sun.com/j2se/1.5.0/</a></li>
                <li><b>Mac OS X</b>: <a href="http://www.apple.com/support/downloads/javaupdate142.html">http://www.apple.com/support/downloads/javaupdate142.html</a> 
                (Mac OS X 10.3.4 or later). Mac OS upgrades are also available via Apple's 
                Software Update mechanism. 
                <li><b>Open VMS</b>: <a href="http://h18012.www1.hp.com/java/download/index.html">http://h18012.www1.hp.com/java/download/index.html</a></li>
            <p><b>Note</b>: You can download archived versions of the IDE at 
            <a href="http://java.sun.com/products/archive/index.html">http://java.sun.com/products/archive/index.html</a>.</p>
                <!--More information about using NetBeans IDE on Mac
                OS X is available at <a href="https://netbeans.org/kb/articles/mac.html">https://netbeans.org/kb/articles/mac.html</a></li>-->
            </ul>
  
        </blockquote>
        <p align="center"><a href="#top">top</a></p><br>

        <a name="compatibility"></a>
        <h2>Compatibility</h2>
        <blockquote>
        <p>When you first run the IDE, you can import a subset of the settings 
        you used in NetBeans IDE 5.0. If you choose not to import settings from a previous 
        release, the IDE opens using the default settings. </p>
        <blockquote><b>Note:</b><i> The IDE only recognizes previous installations where 
        the user directory resides in the default location. It does not recognize 
        installations where you have specified a user directory using the <code>--userdir</code> 
        switch. If you would like to import settings from an IDE that the installer 
        does not recognize, download an archive version of the IDE instead of the 
        installer.</i></blockquote>
        <p>Though it is possible to import settings from a previous IDE installation
        into NetBeans IDE 5.5 , it is not possible to import settings
        from NetBeans IDE 5.5   into an earlier IDE release. </p>
        
        <p><b>Note:</b>If you edit the Project Properties for a project that was created
        in NetBeans IDE 4.1 or earlier in NetBeans IDE 5.5 , the project will no longer
        work in the earlier NetBeans IDE versions. </p>
        <br> 
        </blockquote>
        <p align="center"><a href="#top">top</a></p><br>
        
        <a name="known_issues"></a>
        <h2>Known Issues </h2>
        <br>
        <div class="greybox">
            <p><b>Note: </b>The NetBeans IDE and Sun Java System Application Server bundle
            creates the <tt>admin</tt> user with password <tt>adminadmin</tt> by default.
            Users should use these settings to log in via the web console.</p>
        </div>
        <br>
        <p>The unresolved issues for this release are as follows: </p>       
        <blockquote>
            <ul>
                    <!--
                    <li><a href="ADD ISSUE LINK HERE">Issue #ADD ISSUE NUMBER HERE:  
                    ADD ISSUE TITLE HERE.</a> 
                    <blockquote>
                        <p><b>Description:</b> ADD DESCRIPTION HERE.</p> 
                        <p><b>Workaround:</b> ADD WORKAROUND HERE.</p>
                    </blockquote></li><br>-->                
                
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=26965">Issue
                        #26965: IDE installer crashes.</a> 
                        <blockquote> 
                            <p><b>Description: </b>If you have an incompatible version of <tt>sax.jar</tt> in your JDK
                            installation, the IDE installer crashes with the following message: 
                            &quot;The wizard cannot continue because of the following error: could
                            not load wizard specified in /wizard.inf (104)&quot; </p>
                            <p><b>Workaround: </b>Temporarily remove <tt>jre/lib/endorsed/sax.jar</tt> from the JDK
                            directory during IDE installation.</p>
                        </blockquote>
                    </li>
                      
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=64771">Issue #64771: Startup fails on Linux 
                    with SELinux (Security-enhanced) option enabled.</a> 
                    <blockquote>
                        <p><b>Description: </b>When starting NetBeans with the SELinux (Security-enhanced) Linux 
                        option enabled, startup fails (Linux only).</p>
                        <p><b>Workaround: </b>If this happens, disable SELinux temporarily by typing 
                        <tt>#setenforce 0</tt> from the command line. Note that this 
                        requires root privileges. Then add <tt>selinux=0</tt> to 
                        your kernel command line to disable SELinux at boot up.</p>
                    </blockquote>
                    </li>
                
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=64840">Issue #64840: 
                    Network communication broken on Linux with IPv6 enabled. </a> 
                    <blockquote>
                        <p><b>Description: </b>Network communication broken on Linux with IPv6 enabled, 
                        preventing the IDE from connecting to bundled servers, 
                        Auto Update, etc.</p>
                        <p><b>Workaround: </b>If this happens, run the IDE using the 
                        <code>-J-Djava.net.preferIPv4Stack=true'</code> switch. 
                        Alternatively, disable IPv6 (in <tt>/etc/modules.conf</tt> 
                        or <tt>/etc/modprobe.conf</tt>).</p>
			<p>For more information see:
                        <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5087907">Issue #5087907</a>.</p>
                    </blockquote>
                    </li>
                    
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=75967">Issue #75967:  
                    Out of memory error when working with large WSDL files.</a> 
                    <blockquote>
                        <p><b>Description:</b> When creating a Web Service client or Web Service 
                        from WSDL, the IDE returns an OutOfMemoryError and may become
                        unusable temporarily.</p> 
                        <p><b>Workaround:</b> If you encoutner this problem, edit the <tt>-J-Xmx128m</tt> 
                        startup parameter in $NB_HOME/etc/netbeans.conf to be <tt>-J-Xmx256m</tt>.</p>
                    </blockquote>
                    </li>

                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=71959">Issue #71959:Code completion
                    fails for sources outside a project.</a> 
                    <blockquote>
                        <p><b>Description: </b>When you open a Java source file that is not in a project
                        and try to invoke code completion for standard Java classes, the code completion
                        box does not offer anything.</p>
                        <p><b>Workaround: </b>Create a project for sources that you want to edit in the IDE.</p>

                    </blockquote></li>

                                        <li>Characters do not display properly in some Asian locales.</a> 
                    <blockquote>
                        <p><b>Description:</b> When running the IDE on Red Hat 
                        Fedora Core 3 in the zh_CN locale and possibly some other 
                        Asian locales, the text may be unreadable because of rendering 
                        problems. This problem is a result of font support issues with the 
                        JDK on the Fedora Core distribution, so this problem also might 
                        apply to other Java applications running on Fedora Core.</p>
                        <p><b>Workaround: </b>There is no safe workaround for the rendering problem 
                        on Red Hat Fedora Core 3, so it is best to use a different Linux 
                        distribution or operating system in these locales. We have verified 
                        that this problem does not occur on Red Hat Enterprise Linux 3. </p>



                    </blockquote></li>
                    
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=75562">Issue #75562:Keymap import 
                    from NetBeans IDE 5.0 to does not work.</a> 
                    <blockquote>
                        <p><b>Description: </b>The IDE does not correctly import all user-created keymap profiles
                        or thanges to the standard keymap profiles.</p>
                        <p><b>Workaround: </b>None.</p>

                    </blockquote></li>

                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=77129">Issue #77129: Alt keyboard
                    bindings do not work on Macintosh platforms.</a> 
                    <blockquote>
                        <p><b>Description: </b>None of the keyboard combinations that use the Alt key 
                        work on Macintosh.</p>
                        <p><b>Workaround: </b>Use the menu items to invoke the commands.</p>

                    </blockquote></li>

                    <!--
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=78916">Issue #73552: Code completion 
                    does not work for nested annotation and annotation arrays.</a> 
                    <blockquote>
                        <p><b>Description: </b>Code completion not offered when entering import statements in Source Editor.</p>
                        <p><b>Workaround: </b>There is currently no known workaround for this issue.</p>

                    </blockquote></li>
                    -->

                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=85361">Issue #85361: NetBeans 5.5 installer 
                    does not start on Windows Vista.</a> 
                    <blockquote>
                        <p><b>Description: </b>On systems running Windows Vista, the NetBeans 5.5 installer fails to start 
                        and a message suggesting running with the "silent" or "console" flag appears. </p>
                        <p><b>Workaround: </b>To correct this, run the installer on JDK 6.0 build 96 or newer.</p>

                        <p>If you encounter further difficulties, disable Compatibility Mode manually. 
                        You can do this by right-clicking the .exe installer file and choosing Properties from the pop-up menu, 
                        then deselecting Compatibility Mode in the Compatibility tab of the File Properties dialog. 
                        Note that if Compatibility Mode was turned on automatically, it is necessary to disable 
                        it for both the current user AND all users. To do so, click the "Show Settings for All Users" 
                        button, then deselect the Compatibility Mode checkbox in the "Compatibility for All Users" dialog.</p>
                    </blockquote>
                    </li>     
                	
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=86858">Issue #86858: Repaint problems on MacOS with JDK 1.6.</a>
                    <blockquote>
                        <p><b>Description: </b>When dragging a tab a black square area appears. After dropping
                        the tab, problems with Welcome screen repainting occur.</p>
                        <p><b>Workaround: </b> Set <tt>-J-Dapple.awt.graphics.UseQuartz=true</tt> or use Java 1.5 for running the IDE.</p>
                    </blockquote>
                    </li>

                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=87247">Issue #87247: Copying class does not add required import statements.</a>
                    <blockquote>
                        <p><b>Description: </b>When copying and pasting a class from one package to another, the required import statements are not added. </p>
                        <p><b>Workaround: </b> If you encounter this behavior, invoke the Fix Imports action on the class.</p>
                    </blockquote>
                    </li>

                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=6986">Issue #6986: Code not properly updated when bean property is renamed.</a>
                    <blockquote>
                        <p><b>Description:</b> When renaming a bean property with read and write methods, the source code is incorrectly updated.</p>
                        <p><b>Workaround:</b> Ensure that a complete metamodel for the bean exists, then find and change the 
                        setter/getter pattern. Note that this workaround will not work if you have already edited the methods' code. </p>
                    </blockquote>
                    </li>
                    
                    
                    
                    
                    
                    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=83712">Issue #83712: Project with non-ASCII pathname cannot be built on JDK 6.</a>
                    <blockquote>
                        <p><b>Description:</b> When running the IDE on JDK 1.6 (regardless of what Java version you use
                        to build your projects), and the file path to your project contains national characters not in 
                        the ASCII character set, you may encounter an error when building or running your project. This is 
                        a bug in Ant 1.6.5 triggered by newer XML parsers.</p>
                        <p><b>Workaround:</b> If this occurs, you may use any of the following workarounds:

                        <ol>
                            <li>Place your project in a folder which does not use such characters by renaming
                            the Project using the project's contextual menu.</li>
                            <li>Run the IDE under JDK 5.
                            <li>Download Ant 1.7.0. Then switch the Ant Home paramter to point to 
                            the 1.7.0 Ant installation in Tools > Options > Miscellaneous > Ant.
                            <li>Add the xercesImpl.jar to the IDE's classpath by navigating to
                            Tools > Options > Miscellaneous > Ant and clicking Manage Classpath. Then click Add
                            JAR/ZIP and select the file <code>xerces-<<version>>.jar</code> from the directory
                            <code>ide<<number>>/modules/ext</code> in your NetBeans installation.</li>
                        </ol>
                    </blockquote>
                    </li>

            </ul>
        </blockquote>
        <p align="center"><a href="#top">top</a></p><br>

        <a name="documentation"></a> 
        <h2>Documentation</h2>
        <blockquote> 
            <p>For information about using the IDE, see the following resources: </p>
            <p>Getting Started: </p>
            <ul>
                <li><a href="install.html">NetBeans IDE 5.5 Installation Instructions</a>
                <li><a href="https://netbeans.org/kb/archive/index.html">NetBeans IDE 5.5 Quick Start Guide</a> <i>(Archived document)</i>
            </ul>

            Learning Trails:
            <ul>
                <li><a href="../../../kb/trails/java-se.html">For Basic Java Applications</a> 
                <li><a href="../../../kb/trails/matisse.html">For Java GUI Applications</a> 
                <li><a href="../../../kb/trails/platform.html">For NetBeans Modules and Rich-Client Applications</a>                
                <li><a href="../../../kb/trails/web.html">For Web Applications</a>
                <li><a href="../../../kb/trails/java-ee.html">For Java EE Applications</a>
                <!--<li><a href="../../../kb/trails/soa.html">For SOA Applications</a>-->
                <li><a href="../../../kb/trails/mobility.html">For Mobile Applications</a>
            </ul>            
            Complete list of NetBeans IDE 5.5 Documentation: 
            <ul>
                <li><a href="../../../kb/index.html">https://netbeans.org/kb/index.html</a></li>
            </ul>
            <br>
            <div class='greybox'>
                <p><b>Note: </b>If you are running the NetBeans IDE on Mac OS X, see <a href="../../../kb/articles/mac.html"> Using
                NetBeans on Mac OS X</a> for more information about keyboard equivalents,
                tips and tricks, and other Mac-specific topics. </p>
            </div>
        </blockquote>
        <p align="center"><a href="#top">top</a></p><br>

        <a name="more_info"></a>
        <h2>More Information</h2> 
        <blockquote>
            <p>You can find news, articles, additional modules, and other useful
            information on the NetBeans project web site.
            Since NetBeans is an open-source project, the web site also provides access
            to source code, a bug database, information on creating your own NetBeans
            modules, and much more. </p>
            <p>For more information, visit <a href="https://netbeans.org/">https://netbeans.org/</a>. </p>
            <p>You can keep up to date on NetBeans IDE and interact with the NetBeans community
            by signing up for NetBeans project mailing lists  at <a href="https://netbeans.org/community/lists/">https://netbeans.org/community/lists/</a>.
        </blockquote>
        <p align="center"><a href="#top">top</a></p><br>
        
    </body>
</html>

