第一篇 标准开发环境 2
第1章 NetBeans的安装和开发环境配置 2
1.1 下载和安装NetBeans 2
1.1.1 NetBeans 6.0新功能及改进 2
1.1.2 NetBeans对系统的最低要求 5
1.1.3 下载NetBeans 6.0 6
1.1.4 安装NetBeans 6.0全功能包 7
1.2 NetBeans集成开发环境 9
1.3 NetBeans菜单和工具栏 10
1.4 NetBeans窗口 12
1.4.1 “项目”窗口 12
1.4.2 “文件”窗口 13
1.4.3 “服务”窗口 14
1.4.4 “输出”窗口 14
1.4.5 “导航”窗口 15
1.4.6 “组件面板”窗口 16
1.4.7 “属性”窗口 17
1.4.8 “检查器”窗口 17
1.4.9 “任务列表”窗口 18
1.4.10 “收藏夹”窗口 19
1.5 源代码编辑器 20
1.5.1 快速编写代码 20
1.5.2 代码模板 21
1.5.3 格式化Java代码 21
1.5.4 代码跳转 22
1.6 更新NetBeans 23
1.7 配置NetBeans开发环境 23
1.7.1 常规配置 24
1.7.2 编辑器的常规选项 24
1.7.3 编辑器的缩排选项 25
1.7.4 定制代码模板 27
1.7.5 字体和颜色 27
1.8 小结 28
第2章 通过NetBeans开发Java标准应用程序 29
2.1 创建Java标准应用程序 29
2.1.1 创建Java标准应用程序项目 29
2.1.2 打开和关闭项目 32
2.1.3 导入项目 32
2.1.4 重命名项目 36
2.1.5 项目的复制、移动和删除 37
2.1.6 创建Java主类 38
2.1.7 创建Java包 39
2.2 项目运行与项目配置 40
2.2.1 项目运行 40
2.2.2 项目配置 41
2.3 创建标准GUI应用程序 44
2.3.1 包含三个菜单的应用程序 44
2.3.2 多文档界面应用程序 45
2.3.3 “确定”/“取消”对话框 46
2.4 创建GUI窗体 48
2.4.1 对话框窗体 49
2.4.2 框架窗体 49
2.4.3 面板窗体 50
2.5 添加界面组件 51
2.5.1 GUI Builder 51
2.5.2 添加/编辑组件 52
2.5.3 修改组件属性 54
2.5.4 设置组件对齐以及等宽/等高 57
2.5.5 布局管理器和GridBagLayout布局 58
2.6 使用Javadoc 62
2.6.1 设置Javadoc生成参数 62
2.6.2 生成Javadoc 63
2.7 程序的打包与发布 63
2.7.1 设置包装选项 63
2.7.2 项目的生成 64
2.8 小结 64
第3章 在NetBeans中调试应用程序 65
3.1 在NetBeans中调试应用程序 65
3.2 设置和管理断点 66
3.2.1 断点类型 66
3.2.2 添加行断点 67
3.2.3 添加类断点 67
3.2.4 添加方法断点 68
3.2.5 添加异常断点 69
3.2.6 添加线程断点 69
3.2.7 添加字段断点 70
3.2.8 断点的管理 70
3.3 单步执行 71
3.4 查看变量和表达式的值 72
3.4.1 在代码编辑器中直接查看 72
3.4.2 使用“监视”窗口查看 73
3.4.3 使用“局部变量”窗口查看 73
3.5 计算表达式 74
3.6 在调试模式修改代码 75
3.7 NetBeans的调试窗口 75
3.7.1 “装入的类”窗口 75
3.7.2 “调用栈”窗口 76
3.7.3 “线程”窗口 76
3.7.4 “会话”窗口 77
3.7.5 “源”窗口 77
3.8 小结 78
第4章 代码重构 79
4.1 重命名 79
4.1.1 重命名项目 79
4.1.2 重命名其他元素 80
4.2 引入方法 82
4.3 更改方法的参数 83
4.4 封装字段 84
4.5 移动类 86
4.5.1 使用复制/粘贴法移动类 86
4.5.2 重构的移动类命令 86
4.6 从内层移至外层 87
4.7 将匿名类转换为外部类 88
4.8 提取接口 89
4.9 小结 91
第5章 JavaBean开发 92
5.1 JavaBean概述 92
5.2 如何创建一个简单的JavaBean 93
5.2.1 创建一个简单的JavaBean 93
5.2.2 如何使用JavaBean 95
5.3 创建和使用可视化的JavaBean组件 96
5.3.1 创建可视化的JavaBean组件 96
5.3.2 使用可视化的JavaBean组件 100
5.4 JavaBean的属性 101
5.4.1 创建简单属性 101
5.4.2 Indexed属性 102
5.4.3 Bound属性 103
5.5 创建简单属性编辑器 103
5.6 在“属性”窗口中实现下拉列表框 105
5.6.1 创建MyShape组件 105
5.6.2 创建下拉列表框形式的属性编辑器 106
5.6.3 将属性和属性编辑器关联 108
5.7 绘制属性编辑器 109
5.8 自定义属性编辑器 110
5.9 小结 113
第6章 管理和使用服务器 114
6.1 Tomcat服务器 114
6.1.1 启动和停止服务器 114
6.1.2 编辑Tomcat配置文件 115
6.1.3 定制Tomcat服务器 115
6.1.4 Tomcat的管理控制台 118
6.1.5 注册外部的Tomcat服务器 119
6.2 GlassFish和Sun Java应用程序服务器 120
6.2.1 安装Sun Java应用程序服务器 121
6.2.2 注册Sun Java应用程序服务器 123
6.2.3 修改Sun Java Application Server的JVM属性 125
6.2.4 管理GlassFish & Sun Java Application Server 126
6.3 JBoss应用程序服务器 128
6.3.1 JBoss服务器的注册 128
6.3.2 JBoss服务器的管理控制台 129
6.4 小结 129
第7章 数据库的管理与开发 130
7.1 数据库及驱动管理 130
7.2 创建JavaDB数据库 131
7.3 连接数据库 132
7.3.1 连接Java DB数据库 132
7.3.2 Pointbase数据库的注册和连接 134
7.3.3 连接MySQL数据库 134
7.4 在NetBeans中执行SQL语句 136
7.5 数据表的基本操作 137
7.5.1 创建数据表 137
7.5.2 浏览表的结构 138
7.5.3 添加/删除列 138
7.5.4 抓取结构以及重新创建表 140
7.6 视图操作 141
7.7 从数据库重新捕获结构 142
7.8 小结 144
第二篇 NetBeans高级应用 146
第8章 JUnit测试 146
8.1 JUnit测试概述 146
8.2 创建测试实例 147
8.2.1 创建空测试 147
8.2.2 进行现有类的测试 148
8.3 测试套件 151
8.4 配置JUnit 152
8.5 小结 153
第9章 性能分析 154
9.1 Profiler概述 154
9.1.1 安装Profiler工具 154
9.1.2 校准Profiler 155
9.1.3 Profiler控制面板 155
9.2 监视应用程序的运行 157
9.2.1 启动程序监视 157
9.2.2 VM遥测概览 158
9.2.3 “线程”窗口 159
9.2.4 查看监控状态和基本监控数据 160
9.3 进行CPU性能分析 161
9.3.1 启动性能分析 161
9.3.2 查看快照 162
9.3.3 查看性能分析结果 166
9.3.4 查看性能分析状态和基本数据 166
9.3.5 指定根方法 166
9.4 使用分析点 167
9.4.1 创建重置结果类型分析点 168
9.4.2 创建秒表类型分析点 169
9.4.3 创建生成快照类型分析点 169
9.4.4 创建定时生成快照类型分析点 170
9.4.5 创建触发生成快照类型分析点 170
9.4.6 使用分析点 171
9.5 分析内存的使用 171
9.5.1 启动内存分析 172
9.5.2 内存快照 172
9.6 自定义性能分析 174
9.6.1 创建定制的性能分析配置 174
9.6.2 自定义监视分析参数 175
9.6.3 自定义CPU分析参数 176
9.6.4 自定义内存分析参数 177
9.7 将Profiler连接到运行的应用程序 178
9.7.1 使用连接向导进行直接连接 178
9.7.2 进行动态连接 181
9.8 配置Profiler选项 181
9.9 小结 183
第10章 在NetBeans中进行版本控制 184
10.1 CVS基本原理 184
10.2 搭建CVS服务器 185
10.3 签入和签出源 186
10.3.1 签入 186
10.3.2 签出 187
10.3.3 通过CVS浏览NetBeans源代码 188
10.3.4 查看文件状态信息 188
10.4 显示、比较以及还原更改 189
10.4.1 显示更改 189
10.4.2 比较更改 190
10.4.3 还原更改 191
10.5 提交和更新文件 191
10.5.1 提交文件 191
10.5.2 更新文件 192
10.5.3 解决冲突 192
10.6 查看文件历史版本记录 193
10.7 使用标记和分支 194
10.7.1 使用标记 194
10.7.2 使用分支 195
10.8 使用Subversion 196
10.8.1 Subversion简介 196
10.8.2 下载并安装Subversion客户端 197
10.8.3 在NetBeans IDE中设置Subversion 198
10.9 安装Mercurial 199
10.10 小结 200
第11章 基础Web应用程序开发 201
11.1 开发Applet 201
11.1.1 创建小程序 201
11.1.2 运行小程序 207
11.1.3 在JDK 1.5中运行小程序 208
11.2 创建个简单的Web应用程序 210
11.2.1 创建Web应用程序项目 211
11.2.2 运行Web应用程序 213
11.2.3 调试Web应用程序 214
11.2.4 生成Web应用程序 214
11.2.5 部署Web应用程序 215
11.3 在页面中使用HTML组件 216
11.3.1 创建HTML和XHTML页面 216
11.3.2 创建JSP页面 217
11.3.3 HTML组件面板 218
11.3.4 使用HTML表 218
11.3.5 使用HTML有序列表组件 220
11.3.6 使用HTML无序列表组件 222
11.3.7 使用HTML图像组件 224
11.3.8 使用HTML链接组件 224
11.3.9 使用HTML元数据组件 225
11.4 在页面中使用HTML表单组件 227
11.4.1 使用HTML表单 227
11.4.2 使用HTML按钮 227
11.4.3 使用HTML文本输入 228
11.4.4 使用HTML多行输入 230
11.4.5 使用HTML下拉列表 231
11.4.6 使用HTML复选框 233
11.4.7 使用HTML单选按钮 234
11.4.8 使用HTML选择文件 235
11.5 基于JSP的开发实例——登录模块的实现 236
11.5.1 登录模块实现流程 237
11.5.2 设计并创建数据库 237
11.5.3 创建logincheck.jsp文件 238
11.5.4 创建index.jsp文件 240
11.5.5 创建welcome.jsp文件 242
11.5.6 创建error.jsp文件 243
11.5.7 运行项目 244
11.6 在JSP页面中使用JavaBean 245
11.6.1 在JSP页面中声明JavaBean 245
11.6.2 读取Bean属性 246
11.6.3 设置Bean属性 246
11.6.4 基于JSP+JavaBean的开发实例——登录模块的实现 247
11.7 小结 248
第12章 高级Web应用程序开发 249
12.1 开发Servlet 249
12.1.1 在NetBeans中创建Servlet 249
12.1.2 Servlet使用实例——登录模块 252
12.2 使用过滤器 253
12.2.1 NetBeans中创建过滤器的方法 253
12.2.2 过滤器使用实例——为登录模块提供安全保护 258
12.3 创建侦听程序 261
12.4 使用标准标记库 261
12.4.1 JTSL概述以及NetBeans对标准标记库的支持 262
12.4.2 使用核心库标记 262
12.4.3 使用数据库处理标记 266
12.4.4 JSTL开发实例——使用JSTL实现登录模块 270
12.5 自定义标记开发 271
12.5.1 通过标记文件实现标记开发 271
12.5.2 通过标记处理程序实现标记开发 274
12.6 使用HTTP监视器 278
12.6.1 打开HTTP监视器 278
12.6.2 分析会话数据 278
12.7 Web应用程序项目配置 279
12.7.1 配置项目源和Web文件夹 279
12.7.2 为项目添加新框架 280
12.7.3 指定项目的类路径 280
12.7.4 设置编译选项 281
12.7.5 设置打包选项 282
12.7.6 进行运行/部署配置 282
12.8 配置context.xml描述符 283
12.9 配置web.xml描述符 283
12.9.1 常规 283
12.9.2 上下文参数 284
12.9.3 应用程序侦听程序 284
12.9.4 Servlet 285
12.9.5 过滤器 286
12.9.6 欢迎文件 287
12.9.7 错误页面 288
12.9.8 JSP属性组 288
12.9.9 环境条目 289
12.9.10 资源引用 290
12.9.11 资源环境引用 291
12.9.12 EJB引用 291
12.9.13 消息目标引用 291
12.9.14 登录配置 293
12.9.15 安全角色 293
12.9.16 安全约束 294
12.10 配置sun-web.xml描述符 294
12.10.1 常规 295
12.10.2 消息 295
12.11 小结 296
第13章 在NetBeans中开发Struts程序 297
13.1 Struts概述 297
13.1.1 MVC设计模式 297
13.1.2 Web应用程序的MVC实现模式 298
13.1.3 Struts框架结构及原理 299
13.2 创建基于Struts的项目 300
13.3 使用Struts标记创建JSP文件 300
13.4 创建ActionForm Bean 302
13.5 创建Action操作 304
13.6 小结 308
第14章 进行可视化的Web开发 309
14.1 可视化的Web开发概述 309
14.1.1 JavaServer Faces开发概述 309
14.1.2 安装Visual Web开发包 310
14.2 创建简单的Visual Web应用程序 310
14.2.1 创建可视化的Web应用程序项目 311
14.2.2 可视化的Web应用程序开发环境 311
14.2.3 进行可视化的页面编辑 312
14.3 进行页面导航 314
14.3.1 简单的页面导航 314
14.3.2 通过下拉列表框进行页面导航 316
14.4 使用页面片段 317
14.5 使用JSF实现登录模块 318
14.5.1 实现登录失败的界面 318
14.5.2 实现登录成功的界面 319
14.5.3 登录界面以及身份验证 320
14.6 进行AJAX开发 321
14.6.1 下载并导入AJAX及其组件 321
14.6.2 AJAX开发实例:在页面中使用日历 323
14.7 小结 324
第15章 企业级应用程序开发 325
15.1 创建一个简单的企业级应用程序 325
15.1.1 创建企业应用程序项目 325
15.1.2 实现EJB 3.0 Bean 326
15.1.3 在Web应用程序中调用EJB 329
15.1.4 企业应用程序的打包和部署 332
15.2 EJB模块开发 333
15.2.1 Enterprise Bean概述 333
15.2.2 开发实体Bean 334
15.2.3 开发驱动消息Bean 340
15.2.4 自动生成发送JMS消息的代码 343
15.3 使用持久性API 344
15.3.1 创建持久性单元 344
15.3.2 创建实体Bean 346
15.4 创建GlassFish资源 347
15.4.1 JDBC连接池资源 347
15.4.2 JDBC资源 349
15.4.3 JMS资源 350
15.4.4 JavaMail会话资源 352
15.5 小结 353
第16章 基于XML的开发 354
16.1 NetBeans对XML开发的支持 354
16.2 创建一个样例XML架构 355
16.3 使用可视化的XSD设计器 356
16.3.1 “构架”标签页 356
16.3.2 “设计”标签页 356
16.3.3 “源”标签页 358
16.3.4 进行查找 358
16.3.5 添加XML架构组件 359
16.3.6 查找XML架构组件的使用实例 360
16.4 创建和编辑DTD实体 361
16.4.1 通过向导创建DTD实体 361
16.4.2 检查DTD文档 362
16.4.3 生成CSS和文档 362
16.5 创建和编辑XML文档 363
16.5.1 通过向导创建XML文档 363
16.5.2 查看XML文档 365
16.5.3 检查XML文档 365
16.5.4 验证XML文档 365
16.5.5 根据XML文档生成DTD 366
16.6 创建可扩展样式表 367
16.6.1 通过向导创建XSL式样表 367
16.6.2 转换XSL式样表 369
16.7 创建OASIS XML目录文件和XML解析实体 370
16.8 创建层叠样式表 370
16.8.1 层叠样式表编辑器的“字体”面板 370
16.8.2 层叠样式表编辑器的“背景”面板 372
16.8.3 层叠样式表编辑器的“文本块”面板 373
16.8.4 层叠样式表编辑器的“边框”面板 374
16.8.5 层叠样式表编辑器的“边距”面板 375
16.8.6 层叠样式表编辑器的“位置”面板 376
16.9 小结 377
第17章 UML建模 378
17.1 UML建模支持模块 378
17.1.1 UML建模模块的功能 378
17.1.2 下载和安装UML建模模块 379
17.2 创建UML项目以及UML建模环境 380
17.2.1 创建UML项目 380
17.2.2 “文档”窗口 382
17.2.3 “属性”窗口 383
17.2.4 UML建模组件面板 383
17.3 UML图编辑器 384
17.3.1 添加图元素 384
17.3.2 复制、剪切和粘贴元素 384
17.3.3 删除元素 385
17.3.4 锁定编辑 385
17.3.5 选择所有类似的元素 385
17.3.6 调整元素大小 386
17.3.7 堆叠图元素 386
17.3.8 删除所有拐点 386
17.4 UML图形的缩放 387
17.4.1 放大和缩小 387
17.4.2 缩放到适当大小 388
17.4.3 基于选择区域缩放 388
17.4.4 交互缩放 388
17.5 图布局 388
17.5.1 分层结构布局 388
17.5.2 对称结构布局 388
17.5.3 正交结构布局 389
17.5.4 增量式布局 389
17.5.5 指定布局属性 390
17.6 UML建模实例 393
17.6.1 创建用例图实例 394
17.6.2 创建类图实例 395
17.7 自动生成代码和反向工程 397
17.7.1 自动生成代码 397
17.7.2 对单个源文件进行逆向工程 399
17.7.3 对项目进行逆向工程 400
17.7.4 使用向导进行逆向工程 401
17.8 UML建模的其他高级操作 402
17.8.1 查找和替换 403
17.8.2 关联元素 403
17.8.3 过滤元素类型 405
17.8.4 UML模型报告 405
17.8.5 指定显示和绘制首选项 406
17.9 小结 407
第18章 Web服务以及SOA程序开发 408
18.1 Web服务开发 408
18.1.1 Web服务的类型以及规范 408
18.1.2 创建一个简单的Web服务 409
18.1.3 在客户端调用Web服务 412
18.2 创建BPEL模块项目 414
18.3 创建WSDL文件 415
18.3.1 为WSDL创建XML架构文件 415
18.3.2 创建WSDL文件 416
18.3.3 可视化的WSDL编辑器 419
18.4 开发BPEL流程 421
18.4.1 创建BPEL流程 421
18.4.2 BPEL流程编辑器 421
18.4.3 BPEL流程元素 422
18.4.4 简单的BPEL流程实例 423
18.5 开发SOA复合应用程序 427
18.5.1 创建SOA复合应用程序 427
18.5.2 创建Web客户端测试SOA程序 428
18.6 小结 429
第三篇 NetBeans手机开发 432
第19章 创建和运行Java ME应用程序 432
19.1 Mobility Pack软件包简介 432
19.2 安装Java ME开发包 433
19.2.1 安装摩托罗拉的Java ME开发包 433
19.2.2 在NetBeans中集成摩托罗拉Java ME开发包 434
19.2.3 Sun Java Wireless Toolkit 2.5 for CLDC简介 436
19.3 创建一个简单的Java ME应用程序 437
19.3.1 创建Mobility项目 437
19.3.2 创建MIDlet 439
19.4 Java ME应用程序结构分析 441
19.5 配置Java ME应用程序 442
19.5.1 查看项目常规属性 442
19.5.2 定制平台 443
19.5.3 设置应用程序描述符属性 443
19.5.4 设置MIDlet 445
19.5.5 设置推注册 445
19.5.6 设置API权限 446
19.5.7 过滤源文件 447
19.5.8 设置编译属性 448
19.5.9 设置库和资源 448
19.5.10 设置JAR和JAD文件 449
19.5.11 设置Javadoc生成 449
19.5.12 设置运行属性 450
19.5.13 设置部署方法 450
19.6 小结 455
第20章 Java ME程序的可视化开发 456
20.1 创建可视的MIDlet 456
20.1.1 创建可视化的MIDlet 457
20.1.2 可视化MIDlet组件面板 458
20.1.3 流设计器 458
20.1.4 屏幕设计器 459
20.1.5 “导航”窗口 460
20.1.6 “属性”窗口 460
20.2 MIDP 2.0高级界面组件 460
20.3 创建基于文本框(TextBox)的应用程序 461
20.3.1 创建文本框应用程序 461
20.3.2 TextBox的常用属性 462
20.3.3 使用命令按钮 464
20.4 创建闪屏(SplashScreen) 466
20.5 使用滚动消息栏(Ticker) 469
20.6 创建警报(Alert) 470
20.7 创建等待屏幕(WaitScreen) 473
20.8 创建登录屏幕(LoginScreen) 476
20.9 创建SMS编写器(SMSComposer) 479
20.10 创建列表(List) 481
20.11 创建文件浏览器 483
20.12 创建PIM浏览器(PIMBrowser) 485
20.13 创建表单(Form) 486
20.13.1 使用文本字段组件(TextField) 487
20.13.2 使用字符串项组件(StringItem) 489
20.13.3 使用图像项组件(ImageItem) 491
20.13.4 使用标尺组件(Gauge) 493
20.13.5 使用日期字段组件(DateField) 496
20.13.6 使用选项组组件(ChoiceGroup) 497
20.13.7 使用TableItem组件 498
20.13.8 使用分隔符组件(Spacer) 501
20.14 使用SVG组件 502
20.14.1 预览SVG文件 503
20.14.2 设置外部编辑器 504
20.14.3 导出SVG图像和动画 504
20.14.4 使用SVG播放器组件(SVGPlayer) 506
20.14.5 使用SVG闪屏(SVGSplashScreen组件)和SVG等待屏幕(SVGWaitScreen组件) 507
20.14.6 使用SVG菜单组件(SVGMenu) 508
20.15 使用组件面板管理器 510
20.16 使用Mobile Game Builder 511
20.16.1 创建Game Builder样例项目 511
20.16.2 创建场景和平铺层 513
20.16.3 创建动画层 515
20.16.4 创建GameCanvas和MIDlet 516
20.17 小结 517
第21章 Java ME开发高级技术 518
21.1 创建Canvas画布 518
21.2 应用程序的签名运行 521
21.2.1 签名概述 521
21.2.2 NetBeans的安全管理器 522
21.2.3 MIDP项目签名 523
21.2.4 指定安全域运行 524
21.3 对应用程序进行混淆处理 524
21.4 多编译配置以及预编译 525
21.4.1 配置管理 526
21.4.2 使用更多配置 527
21.4.3 使用预编译 528
21.5 小结 530
第四篇 NetBeans组件开发 532
第22章 开发NetBeans插件模块 532
22.1 NetBeans IDE和NetBeans平台 532
22.1.1 NetBeans平台概述 532
22.1.2 NetBeans平台的功能 533
22.2 NetBeans模块开发 533
22.2.1 创建NetBeans插件模块项目 533
22.2.2 创建菜单项和工具栏按钮 536
22.2.3 安装和卸载插件模块 540
22.3 插件模块项目管理 541
22.3.1 源和代码级别 541
22.3.2 库管理 542
22.3.3 设置显示参数 544
22.3.4 版本控制 544
22.3.5 打包设置 545
22.4 为操作编写处理代码 546
22.5 富客户端应用程序开发 548
22.5.1 富客户端应用程序开发概述 548
22.5.2 创建模块套件项目 548
22.5.3 添加模块项目 549
22.5.4 生成选项 550
22.5.5 去除不必要的菜单 552
22.5.6 创建闪屏 552
22.5.7 分发应用程序 554
22.6 小结 554
第五篇 NetBeans开发C++程序第23章 使用NetBeans开发C/C++程序 556
23.1 NetBeans C/C++Pack软件包简介 556
23.2 安装和设置NetBeans C/C++ Pack软件包 556
23.2.1 下载安装具有C/C++支持的NetBeans集成开发环境 557
23.2.2 安装并设置编译器和工具 558
23.3 创建和设置C和C++项目 562
23.3.1 创建C/C++应用程序 562
23.3.2 逻辑视图和物理视图 563
23.3.3 向项目中添加文件 563
23.3.4 编辑源文件 564
23.3.5 设置项目属性 565
23.3.6 管理配置 567
23.3.7 生成并运行项目 568
23.4 设置C/C++ Pack 568
23.4.1 设置C/C++生成工具 569
23.4.2 设置C/C++项目选项 570
23.4.3 设置C/C++代码帮助 570
23.5 创建Makefile 571
23.5.1 Makefile简介 571
23.5.2 使用Makefile向导创建Makefile 572
23.6 创建基于现有代码的C/C++项目 579
23.7 利用C/C++ Pack创建JNI 581
23.7.1 JNI简介 581
23.7.2 创建Java应用程序项目 582
23.7.3 创建C/C++动态库项目 583
23.7.4 生成并运行应用程序 586
23.8 小结 586
附录A NetBeans的快捷键 587