<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>  
        <title>NetBeans IDE - Java ME and Embedded</title>
        <meta http-equiv="content-language" content="en">
        <meta name="description" content="DESCRIPTION HERE">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
        <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('a.cbox').colorbox({rel: 'cbox', opacity: 0.7});
            });
        </script>
        <div style="margin:10px 20px 0px 0px;">
            <h1>Java ME and Embedded</h1>
            <p><a href="../../images_www/v7/1/screenshots/gamebuilder.png"><img
                        alt="Java ME and Embedded development in the NetBeans IDE"
                        src="../../images_www/v7/1/screenshots/gamebuilder-cut.png"
                        style="border: 0px solid"><br>
                    <span class="font-11"> Click image for fullscreen preview</span></a>
            </p>
            <p class="intro">
                Create, test, debug, and deploy applications that will run
                on the Raspberry Pi, mobile phones, PDAs, and set-top boxes, and
                other mobile and embedded systems.  
            </p>
            <div class="line">&nbsp;</div>

            <!-- left text section start -->
            <a name="o1"></a>
            <span id="im3" class="overview-right"><a href="../../images_www/v7/3/features/client-jme-pi-full.png" class="cbox" title="Raspberry Pi"><img src="../../images_www/v7/3/features/client-jme-pi-full.png" alt=""  /></a></span>
            <h2>Java SE Embedded</h2>
            <p>The Java SE Embedded platform optimizes Java SE
                for mid-range to high-end embedded systems. 
                Devices having 32MB (without graphics) or
                more for Java can use Java SE Embedded.</p>
            <p>NetBeans IDE
                offers full development support against remote
                embedded platforms, including intuitive development,
                one-click deployment, remote debugging, and comprehensive
                remote profiling.</p> 
            <p>For example, the IDE provides complete end-to-end integration
                with the Raspberry Pi. In one click, your application is deployed,
                after which you can debug and profile it.</p>
            <p><a href="../../kb/index.html" class="arr-link">
                    NetBeans Technology Learning Trails</a></p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <!-- right text section start -->
            <a name="o2"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/client-jme-jdk8-full.png" class="cbox" title="Java ME Embedded"><img src="../../images_www/v7/3/features/client-jme-jdk8-cut.png" alt="" /></a></span>
            <h2>Java ME Embedded</h2>
            <p>Java ME Embedded is a subset of the Java SE platform that has been 
                scaled down to fit the limitations of resource-constrained 
                devices and optimized for low to mid-range embedded-systems.
                Devices having 8MB (without graphics) or more for Java can 
                use Java ME Embedded.</p>
            <p>The IDE supports the use of the Java ME 8 CLDC Platform Emulator,
                provides intuitive tools and editors for Java 8 on Java ME,
                and lets you easily customize optional packages in the Java ME Embedded platform.</p>
            <div class="line">&nbsp;</div>
            <!-- right text section end -->
            
            <!-- left text section start -->
            <a name="o3"></a>
            <span id="im3" class="overview-right"><a href="../../images_www/v7/3/features/client-jme-full.png" class="cbox" title="JavaME"><img src="../../images_www/v7/3/features/client-jme-cut.png" alt=""  /></a></span>
            <h2>Phones, Hand-Held Devices, Java Card, and Set-Top Boxes</h2>
            <p>Create, test, and debug applications for the Mobile 
                Information Device Profile (MIDP) 1.0, 2.0, 2.1 (MSA),
                the Connected Limited Device Configuration (CLDC) 1.0 and 1.1, 
                and the Connected Device Configuration (CDC).</p> 
            <p>The IDE comes bundled with the Java ME SDK which supports 
                both CLDC and CDC development. You can register
                other mobile and embedded platforms from the Tools menu.</p>
            <p><a href="../../kb/index.html" class="arr-link">
                    NetBeans Technology Learning Trails</a></p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <!-- right text section start -->
            <a name="o4"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/client-jme-card-full.png" class="cbox" title="Java Card"><img src="../../images_www/v7/3/features/client-jme-card-cut.png" alt="" /></a></span>
            <h2>Java Card</h2>
            <p>The Java Card Platform
                is a JVM that runs on smart cards. 
                This platform supports familiar 
                Java APIs such as servlets and allows 
                you to write web applications that run 
                on tiny devices that fit in the palm of your hand.</p>
            <p>The IDE supports Java Card projects, Java Card applet
                deployment, and a Java Card device console.</p>
            <div class="line">&nbsp;</div>
            <!-- right text section end -->

            <!-- left text section start -->
            <a name="o5"></a>
            <span id="im3" class="overview-right"><a href="../../images_www/v7/3/features/ide-basic-plugins.png" class="cbox" title="Plugin Manager"><img src="../../images_www/v7/3/features/ide-basic-plugins-cut.png" alt=""  /></a></span>
            <h2>Visual Mobile Designer</h2>
            <p>Develop GUIs rapidly with the Visual Mobile Designer.
                Drag and drop components like wait screens, login screens,
                file browsers, an SMS composer, and splash screens are included. 
                The Analyzer tool helps you decrease file size by identifying 
                unused components for removal, and it also checks for MIDP 
                1.0 compliance. The VMD also makes GUI localization easier.</p>
            <p><b>Note:</b> The Visual Mobile Designer is available in
                the NetBeans Update Center. To run VMD in the IDE,
                you need to install the Visual Mobile Designer plugin
                from the Update Center (Tools > Plugins > Available Plugins).</p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <h2>See Also</h2>
            <ul class="bigger">
                <li><a href="../../community/releases/81/index.html">NetBeans IDE 8.1 Release Page</a> for a list of highlighted features in the latest stable release.</li>                
                <li><a href="../../kb/trails/java-se.html">General Java Development Learning Trail</a> for tutorials that will help you get started.</li> 
            </ul>

        </div>
    </body>
</html>
