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

= NetBeans IDE 8.0の概要
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDE 8.0の概要 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDE 8.0の概要

このビデオでは、NetBeans IDE 8.0で提供される機能の概要が示されます。

link:https://netbeans.org/community/releases/80/[+NetBeans IDE 8.0+]は、最新のJava 8テクノロジ(Java SE 8、Java SE Embedded 8およびJava ME Embedded 8)を完全にサポートしています。また、IDEでは、PrimeFacesを使用したMavenおよびJava EEの新しい機能強化、HTML5(特に、AngularJS)に関する新規ツール、PHPおよびC/C++に対するサポートの向上など様々なことに対応しています。

link:http://bits.netbeans.org/media/nb80_overview_video.mp4[+このビデオをダウンロードする+] [サイズ: 28.7MB]


 


== 関連リンク

* link:../../../kb/index.html[+NetBeans IDEのチュートリアル+]
* link:../intro-screencasts.html[+NetBeans IDEのスクリーンキャスト+]
* link:../../../community/index.html[+NetBeansコミュニティ+]
link:/about/contact_form.html?to=3&subject=Feedback:%20NetBeans%207.4%20overview%20screencast[+ご意見をお寄せください+]


