锁定老帖子 主题:SCJP笔记_章十_开发
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-13
第十章 开发
10.1 使用javac和java命令 考试目标7.1 给定一段代码示例和一个场景,编写代码,使用恰当的访问修饰符、包声明和导入语句,与示例中的代码交互(通过访问或继承)。 考试目标7.2 给定类的一个示例和一个命令行,确定期望的运行时行为。 考试目标7.5 给定类的一个完全限定名称,该类在JAR文件的内部和/或外部部署,为该类构造适当的目录结构。给定一个代码示例和一个类路径,确定类路径是否允许代码成功地编译。
10.1.1 用javac编译
考试要求掌握的是 javac [options] [source files]
用-d选项编译,可以改变类文件的目标位置. 例如 myProject | |--source | | | |--com | | | |--javaeye | | | |--HelloJava.java | |--classes | | | |--com | | | |--javaeye | | | |--(HelloJava.class goes here)
如果你在source目录中编译HelloJava.java,并想将结果文件HelloJava.class放入class/com/javaeye目录,则命令如下: javac -d ../classes com/javaeye/HelloJava.java 其中../classes是编译将要开始的位置,这个目录必须是已经存在的,否则会出现编译错误;后面的com/javaeye/目录如果不存在,会自动创建.
10.1.2 用java命令启动应用程序
java [options] class [args] class文件写.class扩展名 例如: java -DmyProp=myValue HelloJava x 1 意思是:创建名为myProp的系统属性(必须紧跟D,不能有空格),并将其值设置为myValue.然后,启动名为HelloJava.class的文件,并向它发送两个String变元,其值为x和1.
使用系统属性 java.util.Properties类 Properties p = System.getProperties(); //获得系统属性 p.setProperty("key","value"); //添加属性 p.list(System.out) //打印到系统控制台上
处理命令行变元 public static void main(String[] args) ,args就是命令行变元数组.也可以写成String...args
10.1.3 查找其它类
声明并使用类路径 UNIX -classpath /com/foo/acct : /com/foo WINDOWS -classpath \com\foo\acct ; \com\foo -classpath简写为-cp
包与查找 在package和import中使用的路径是绝对路径.
相对路性与绝对路径
10.2 JAR文件 考试目标7.5 给定类的一个完全限定名称,该类在JAR文件的内部和/或外部部署,为该类构造适当的目录结构。给定一个代码示例和一个类路径,确定类路径是否允许代码成功地编译。
10.2.1 JAR文件与查找 创建jar文件: jar -cf MyJar.jar myApp 将myApp下的所有文件打到MyJar.jar中 查看jar中的文件: jar -tf MyJar.jar
jar命令会自动创建META-INF目录,并在它里面建立MANIFEST.MF文件.
编译一个jar包中的.java文件: javac -cp jar包的相对路径 java文件
10.3 使用静态导入 考试目标7.1 给定一段代码示例和一个场景,编写代码,使用恰当的访问修饰符、包声明和导入语句,与示例中的代码交互(通过访问或继承)。
10.3.1 静态导入 注意:只能是import static,而不能是static import. 对于有相同常量名,方法名的类型要慎用静态导入,编译器分不清楚你到底想用哪一个. public class TestStatic { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); System.out.println(Integer.toHexString(42)); } } //使用静态导入之后,变成这样 import static java.lang.System.out; import static java.lang.Integer.*; public class TestStatic { public static void main(String[] args) { out.println(MAX_VALUE); out.println(toHexString(42)); } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1453 次