zoukankan      html  css  js  c++  java
  • javac、jar使用实录

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

    建立项目所在目录F:www

    案例一

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

    com esthelloHelloWorld.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 estpeoplePeople.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

    至此差不多测试完毕

  • 相关阅读:
    吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper 数据模型 znode 结构详解
    吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper Java 客户端搭建
    吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper linux 服务端集群搭建步骤
    吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 安装配置
    吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper
    吴裕雄--天生自然 使用python的pandas_alive包生成动态图
    程序规范示例
    迭代器Iteration
    斐波拉契数列(Fibonacci)--用生成器生成数列
    Python中装饰器的用法
  • 原文地址:https://www.cnblogs.com/studyLog-share/p/4669835.html
Copyright © 2011-2022 走看看