javac、jar使用实录

因项目管理部署需要,记录一下过程,以免下次忘记了,再次使用又需要重头再来,只记录正确的操作方式,可能会提到某些错误

 

建立项目所在目录F:\www

案例一

其下建立项目的java源文件的包目录结构、java源文件

com\test\hello\HelloWorld.java,代码如下:

1 package com.test.hello;
2 
3 public class HelloWorld{
4 
5     public void say(){
6         System.out.println("hello world !");
7     }
8 
9 }

 

com\test\people\People.java,代码如下

 1 package com.test.people;
 2 
 3 import com.test.hello.*;
 4 
 5 public class People{
 6 
 7     public void say(){
 8         HelloWorld hello=new HelloWorld();
 9         hello.say();
10     }
11 
12     public static void main(String[] args){
13         People people=new People();
14         people.say();
15     }
16 
17 }

 

从控制台进入F:\www目录下,运行如下两条命令,控制台输出正确结果

javac com/test/people/People.java com/test/hello/HelloWorld.java
java com/test/people/People

 

说明1:

从源文件中可以发现,在People.java中引用HelloWorld,然而javac编译语句写为如下语句也是可以的(源文件的顺序相反)

javac com/test/hello/HelloWorld.java com/test/people/People.java

这是否可以说明javac编译语句中源文件的引用顺序无关?【等待验证】

 

说明2:

上述的编译命令换为如下语句也是可以的,注意是在F:\www目录下

javac com/test/people/People.java

但是如果进入到people目录下,则无法编译

进入test目录下,键入如下语句也可以编译

javac people/People.java hello/HelloWorld.java

但是运行却必须在F:\www目录下

 

案例二

从控制台进入F:\www目录下,在案例一的基础上(主要是需要其中编译后的某些.class文件,看下面的命令就会明白),运行如下命令,将com/test/hello/HelloWorld.java打包为hello.jar文件,以此来测试在程序中引用第三方jar包时程序的编译与运行

jar cf hello.jar com/test/hello/HelloWorld.class

此时在F:\www目录下会得到hello.jar文件

接着键入jar tvf hello.jar命令,回车,可查看hello.jar的内容结构

再接着删除项目的hello目录(包括其下的文件),键入如下命令运行程序,控制台输出正确结果

java -cp .;hello.jar com/test/people/People

 

说明:

在上述删除hello目录时,可删除people目录下的People.class文件,键入如下命令进行编译

javac -cp hello.jar com/test/people/People.java

接着键入上面的运行命令,控制台输出正确结果

 

下面接着做一些其他的测试,我会慢慢更新

大家如果看到其他情形麻烦告知,省的我慢慢去测试,O(∩_∩)O谢谢

 

案例三

引用多个第三方jar包的情况

 

在F:\www目录下新建org/apache/service/Work.java,代码如下:

1 package org.apache.service;
2 
3 public class Work{
4 
5     public void writeCode(){
6         System.out.println("I should write java code everyday !");
7     }
8 
9 }

键入如下命令,进行编译、打包,在F:\www目录下得到apache-service_1.0.jar

javac org/apache/service/Work.java
jar cf apache
-service_1.0.jar org/apache/service/Work.class

删除org目录,修改People.java源代码如下:

 1 package com.test.people;
 2 
 3 import com.test.hello.*;
 4 import org.apache.service.*;
 5 
 6 public class People{
 7 
 8     public void say(){
 9         HelloWorld hello=new HelloWorld();
10         hello.say();
11         Work work=new Work();
12         work.writeCode();
13     }
14 
15     public static void main(String[] args){
16         People people=new People();
17         people.say();
18     }
19 
20 }

键入如下命令,进行编译、运行,控制台输出正确结果

javac -cp hello.jar;apache-service_1.0.jar com/test/people/People.java
java -cp .;hello.jar;apache-service_1.0.jar com/test/people/People

 

 

至此差不多测试完毕

 

posted @ 2015-07-23 11:05  时空穿越者  阅读(878)  评论(0编辑  收藏  举报