SCJP笔记_章十_开发

第十章 开发

 

 

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));
	}
}

 

 

 

转载于:https://my.oschina.net/u/184747/blog/297794

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值