// 
//     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.
//

= Java ME 8に対するNetBeans IDEのサポートのビデオ
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Java ME 8に対するNetBeans IDEのサポートのビデオ - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Java ME 8に対するNetBeans IDEのサポートのビデオ

|===
|このスクリーンキャストでは、Windowsオペレーティング・システムでのOracle Java ME SDK 8に対するNetBeans IDEのサポートについて説明します。内容は次のとおりです。

* NetBeans IDEでのJava MEのサポートのアクティブ化(1:17)
* NetBeans IDEへのJava ME 8 SDKの登録(2:04)
* Java ME 8 Embeddedプロジェクトの作成(3:06)
* Java ME 8 Embeddedプロジェクトのカスタマイズ(4:01)
* Java ME 8 Embeddedプロジェクトの実行(5:58)

作成者: Roman Svitanic、Alyona Stashkova 
時間: 6:38

link:http://bits.netbeans.org/media/nb_me_8.mp4[+フルサイズを視聴/ダウンロード+] (.mp4)([Ctrl]キーを押しながらクリックするとダウンロード、12,2MB)

*注意:* このビデオではクローズド・キャプションを使用できます。クローズド・キャプションをオンにするには、ビデオの下部にあるCCボタンをクリックします。

link:/about/contact_form.html?to=6&subject=Feedback:%20Screencast%20-%20NetBeans%20IDE%20Support%20for%20Java%20ME%208%20EA[+ご意見をお寄せください+]
 |  |  |  
|===


== 関連リンク

* link:http://wiki.netbeans.org/JavaMEEmbeddedHowTo[+Java ME Embeddedのハウツー+]
* link:http://docs.oracle.com/javame/embedded/embedded.html[+Oracle Java ME Embeddedデバイス・ドキュメント+]
* link:http://www.oracle.com/technetwork/java/embedded/documentation/me-e-otn-faq-1852008.pdf[+Oracle Java ME Embeddedの概要およびFAQ+]
* link:http://wiki.netbeans.org/JavaMESDKSupport[+NetBeans IDEでのJava ME SDKのサポートに関するFAQ+]
* link:https://netbeans.org/kb/trails/mobility.html[+Java MEおよびJava Cardアプリケーション・テクノロジの学習+]
* _NetBeans IDEによるアプリケーションの開発_のlink:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG1552[+Java MEアプリケーションの開発+]
* link:http://www.oracle.com/technetwork/java/javame/javamobile/download/overview/index.html[+Java for Mobile Devicesのダウンロード+]
