第十章 开发
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) //打印到系统控制台上
设置属性可以用两种方式:java -DmyProp=myValue,或者p.setProperty("key","value");
处理命令行变元
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
java和JavaC都是用相同的基本查找算法:
一旦发现所查找的类,就不会再查找这个类。如果包含具有相同名称的两个或多个文件,则会使用找到的第一个文件。
最为命令行选项声明的类路径,回复该作为环境变量声明的类路行,但命令行中的类路径只会在调用期间存在。
查找文件是,默认不查找当前目录。如要查找,则在类路径中添加一个点。
-classpath /com/foo/acct:/com/foo:.最后的点时要求Java或者Javac命令,还需要在当前目录下查找类文件。(此时,我们是在讨论类文件,当你告诉Javac要编译哪个.java文件时,默认情况下,javac会在目录中查找,不用加点)
包与查找
在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文件
javac -classpath ws/myApp.jar UseStuff.java
javac -classpath wa UseStuff.java
当使用类路径时,路径中的最后一个目录必须是包的根目录的父目录,这样该目录中所有的类都可以找到。
-classpath可以导入根包下所有的包
Import只能导入根包下所有的类,不能导入子包。Import每次只能导入一个包
在开发和测试的时候,可以将Jar文件放到.../jre/lib/ext目录下,这样就可以通过Java来进行查找,不必在使用的时候再次加入这些包。
10.3.1 静态导入
注意:只能是import static,而不能是static import. 对于有相同常量名,方法名的类型要慎用静态导入,编译器分不清楚你到底想用哪一个.比如Integer类和Long类都执行静态导入。
Java代码
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));
}
}
分享到:
相关推荐
SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition 1.4)是Oracle公司推出的针对Java 1.4版本的程序员认证考试。这个压缩包文件“SCJP1.4.rar”包含了丰富的学习资源,旨在帮助考生准备并...
2. **学习笔记**: "scjp_amay's notes for 1.4.doc"可能是一位名叫Amay的学习者针对Java 1.4版本的SCJP考试整理的笔记,这个版本可能包含对当时Java语言特性的详细解析,例如原始类型、字符串常量池、异常处理机制等...
SCJP(Sun Certified Programmer for the Java SE 6 Platform)是Oracle公司推出的Java程序员认证考试,其旧版编号为310-065。这个压缩包文件“SCJP6.rar”包含了备考SCJP 310-065的重要资源,帮助考生进行全真模拟...
Scjp笔记 - 帝国程序开发
《SCJP认证全面解析——基于SL-275学习指南》 SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司(原Sun Microsystems...希望这份资料能帮助你成功地迈向Java开发的专业之路。
这个压缩包"SCJP_Guide.rar_scjp"包含了备考SCJP的关键资料,特别是"SCJP_Guide.pdf",这很可能是官方的学习指南或模拟试题集,对于准备考试的人来说是极其宝贵的资源。 SCJP考试主要涵盖以下几个方面的知识点: 1...
SCJP(Sun Certified Programmer for the Java Platform)是Oracle公司(原Sun Microsystems)为Java程序员提供的一项认证考试,现称为Oracle Certified Associate, Java SE 8 Programmer。这个认证主要针对那些希望...
通过这些题目,我们可以学习到Java中的类型转换规则、方法的重载和覆盖、异常处理机制以及静态变量的特性,这些都是Java编程基础的重要组成部分,对于通过SCJP认证考试以及日常编程工作都非常有帮助。在实际编程中,...
SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Java开发人员早期认证的一项考试,由Oracle公司接手后更名为OCPJP(Oracle Certified Professional, Java SE Programmer)。...
SCJP证书对于那些希望在Java开发领域提升职业竞争力的初学者或专业人士来说非常有价值。 SCJP考试通常包含75到85个选择题,要在1.5小时内完成。通过这个考试,考生需要展示对Java SE(标准版)平台核心概念的深入...
【标题】"SCJP.rar_SCJP" 指的是Sun Certified Programmer for the Java Platform, Standard Edition (SCJP)的相关学习资料。SCJP是Java程序员的一个基础认证,它验证了开发者对于Java编程语言的核心概念和技能的...
### SCJP复习笔记知识点解析 #### 一、八进制与十六进制表示法 - **八进制**: 在Java中,八进制数是以数字`0`开头的数(而不是字母`o`)。例如,`010`表示的是八进制数,其对应的十进制值为`8`。 - **十六进制**: ...
对于Java程序设计员,Sun推出两项认证:Sun Certificated Java Programmer (SCJP)和Sun Certificated Java Developer(SCJD)。 SCJP 可以说各种Java认证的基础,相对于SCJD来说,SCJP跟侧重于测验您的Java程序...
5. **复习笔记**:可能还包括一些复习笔记或总结,这些都是关键知识点的提炼,便于快速回顾和记忆。 6. **术语表**:Java编程涉及许多专业术语,一份详细的术语表可以帮助你准确理解这些概念。 7. **学习指南**:...