NetBeans IDE 中的 JDK 7 支持概述
NetBeans IDE 引入了对新 JDK 7 语言功能的支持,例如菱形运算符、switch 中的 String、multicatch 等。在代码中使用这些结构时,IDE 会识别它们,在代码完成中提供正确的类,正确突出显示错误并使您能够自动修复语法。因此,NetBeans IDE 可帮助您编写与 JDK 7 语言规范兼容的代码。
在本教程中,您将了解如何在 IDE 中启用 JDK 7 支持以及 IDE 如何处理新的语言结构。
目录
要学完本教程,您需要具备下表所列的软件和资源。
在 NetBeans IDE 中注册 Java 7
在 NetBeans IDE 中启用 JDK 7 支持:
- 下载 JDK 7 并将其安装在系统上。
- 在 IDE 中,从主菜单中选择 "Tools"(工具)> "Java Platforms"(Java 平台)。
- 单击 "Add Platform"(添加平台),然后指定包含 JDK 的目录,例如,在 Windows 上,这是 JDK 安装目录,缺省为 C:\Program Files\Java\jdk1.7.0。
包含 Java 平台的目录标记有
图标。
- 在 "Platform Name"(平台名称)步骤中,验证平台源 zip 文件和 API 文档的缺省位置是否有效。
- 单击 "Finish"(完成)以关闭 "Add Java Platform"(添加 Java 平台)对话框。
- 确保在 "Platforms"(平台)列表中选择了 JDK 1.7,然后单击 "Close"(关闭)。
注意:缺省的平台 Javadoc API 位置是该 Web URL。要进行脱机使用,您可以从 JDK7 二进制文件快照页下载 Javadoc JAR 文件,并指定该文件在系统上的位置。
配置项目以使用 JDK 7
在 IDE 中注册了 JDK 7 后,需要配置项目,以使用该 JDK 进行编译、运行和调试。
- 创建 Java 项目。选择 "File"(文件)> "New Project"(新建项目),然后选择 "Java Application"(Java 应用程序)作为项目类型。单击 "Next"(下一步)。
- 键入 SwitchTest 作为项目名称并指定其位置。
- 在 "Files"(文件)窗口中,右键单击 SwitchTest 项目节点,然后选择 "Properties"(属性)> "Libraries"(库)。在此标签上,从 "Java Platforms"(Java 平台)列表中选择 "JDK 1.7"。

- 切换到 "Project Properties"(项目属性)窗口的 "Sources"(源)标签,然后选择 "JDK 7" 作为源代码/二进制格式。

- 单击 "OK"(确定)以保存所做的更改。此时将设置项目以识别新的 JDK 7 语言功能。
使用新的 JDK 7 语言结构:Switch 语句
JDK 7 在不同领域提供了一些新增功能和改进功能,其中包括国际化、I/O 和网络、安全等。要说明 IDE 的 Java 编辑器提供的 JDK 7 支持,最好的方法是演示 Project Coin 引入的一些语言变化。
其中一个变化是“switch 中的 String”。在早期版本的 Java 中,switch 的参数只能属于以下基本数据类型:byte、short、char、int 或 enum。从 JDK 7 开始,您可以在 switch 语句的表达式中使用 String 类型的参数。
- 打开 SwitchTest.java,并添加以下代码。该小样例显示几种颜色的 RGB 代码。
对于 JDK 7,color 变量可以为 String。
package switchtest;
public class SwitchTest {
public static void main(String[] args) {
String color = "red";
String colorRGB;
switch (color.toLowerCase()) {
case "black": colorRGB = "000000"; break;
case "red": colorRGB = "ff0000"; break;
case "green": colorRGB = "008000"; break;
case "blue": colorRGB = "0000ff"; break;
default: colorRGB = "Invalid color"; break;
}
System.out.println(colorRGB);
}
}
如果在编辑器中错误地设置了粘贴的代码格式,请按 Alt-Shift-F 组合键以重新设置格式。
- 在 "Files"(文件)窗口中,右键单击项目节点,然后选择 "Run"(运行)。此时将会看到应用程序输出,这是红色的 RGB 代码。
如果目标平台和源格式为 JDK 7,您可以看到生成成功,并且应用程序正常工作。

- 让我们改用以前的 JDK 6,并测试如何使用 JDK 6 编译器编译应用程序。
在 "Files"(文件)窗口中,右键单击项目节点,然后选择 "Properties"(属性)。在 "Libraries"(库)标签上将 "Java Platform"(Java 平台)设置为 JDK 1.6,然后在 "Sources"(源)标签上将 "Source Format"(源格式)选项设置为 JDK 6。
您可以立即看到 JDK6 解析器无法识别语法。编译将失败,因为变量类型不兼容。

- 现在,让我们使用 if-then-else 语句而非 switch 重新编写代码,如图所示。
在将 JDK 7 作为目标平台的情况下,IDE 将识别这种情况,并允许您将其转换为 switch。
单击该提示,if-then-else 结构将自动转换为 switch,这与我们以前使用的 switch 完全相同。

- 使用不同的值运行应用程序。
JDK 7 支持:更多示例
要演示 IDE 的 Java 编辑器如何识别和自动修复代码,以便与 JDK 7 语言规范兼容,让我们使用一个虚拟代码片段,该代码片段本身没有什么意义,但它包含所有主要的语言改进功能。
在逐步完成该虚拟代码片段并应用编辑器提示后,您将看到以下功能的操作方法示例:
- 在 Java 编译器可以推断通用实例类型而无需明确指定该类型时,利用自动类型推断。使用所谓的菱形运算符来标记类型推断情况。
- 在可以使用一个 catch 块处理几种类型的异常时,使用改进的异常处理或 "multi-catch"。
- 使用自动资源管理功能引入的资源关闭语句的新语法。
- 将同一 SwitchTest.java 文件中的旧应用程序代码替换为以下内容:
package switchtest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class SwitchTest {
public void test() throws IOException {
List<String> list = new ArrayList<String>();
HashMap<String, Integer> map = new HashMap<String, Integer>();
HashMap<String, Integer> map2 = new HashMap<String, Integer>();
String a = "ehlo";
try {
Method m = Object.class.getMethod("toString");
m.invoke(this);
} catch(NoSuchMethodException e) {
e.printStackTrace();
} catch(InvocationTargetException e) {
e.printStackTrace();
} catch(IllegalAccessException e) {
e.printStackTrace();
}
FileInputStream in = null;
try {
in = new FileInputStream("foo.txt");
int k;
while ((k = in.read()) != -1) {
System.out.write(k);
}
} finally {
if (in != null) {
in.close();
}
}
}
}
- 请注意,IDE 将显示一些说明如何优化代码以符合 JDK 7 规范的提示,如本教程中上面所述。只需单击每个提示并选择建议的操作即可。
- 最后,接受了所有建议后,您就应该具有与 JDK 7 兼容的代码,如下所示。

后续步骤
有关 JDK 7 和 NetBeans IDE 的详细信息,请参见:
有关在 NetBeans IDE 中开发 Java 应用程序的详细信息,请参见: