本教程针对JDK 8编写。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息。
1. 一个程序员安装了一个包含在.jar文件中的新库。为了从他的代码中访问该库,他将CLASSPATH环境变量设置为指向新的.jar文件。现在他发现当他尝试启动简单应用程序时,出现了一个错误消息:
java Hello Exception in thread "main" java.lang.NoClassDefFoundError: Hello
在这种情况下,Hello
类被编译成一个位于当前目录中的.class文件,但是java
命令似乎找不到它。出了什么问题?
1. 编写一个应用程序PersistentEcho
,具有以下功能:
PersistentEcho
使用命令行参数运行,它会打印出这些参数。它还会将打印出的字符串保存到一个属性中,并将该属性保存到名为PersistentEcho.txt
的文件中。PersistentEcho
没有使用命令行参数运行,它会查找名为PERSISTENTECHO的环境变量。如果该变量存在,PersistentEcho
会打印出其值,并以与命令行参数相同的方式保存该值。PersistentEcho
没有使用命令行参数运行,并且未定义PERSISTENTECHO环境变量,它将从PersistentEcho.txt
中检索属性值并打印出来。