javac/java命令行编译运行---小记

1.前言

尝试用命令行的方式编译/运行代码,简单的总结下。


2.javac/java命令


2.1编译过程


  • 首先准备三个java文件,很简单的泛化、依赖关系,这里的java有static代码块,咱们顺便熟悉一下static代码块的执行顺序。
*Person.jva:*

package cn.wh.com;

public class Person {

    static {
        System.out.println("Person static!");
    }

    public Person(){
        System.out.println("Person constructor!");
    }

}
*Child.java*

package cn.wh.com;

public class Child extends Person {

    static {
        System.out.println("Child static...");
    }

    public Child(){
        System.out.println("Child constructor...");
    }

}
*TestDemo*

package cn.wh.com.test;

import cn.wh.com.Child;
import cn.wh.com.Person;

public class TestDemo {

    static {
        System.out.println("test demo static......");
    }

    public static void main(String[] args) {
        System.out.println("main......");

        Person ps = new Child();
    }

}

以上三个文件,接下来使用javac命令编译,我们把三个java源文件放到一个目录下,我这里放在te目录下
这里写图片描述
通过命令终端进入到该目录
这里写图片描述
因为这里TestDemo依赖Child,而Child依赖Person,所以肯定要先编译Person。
输入javac -d . Person.java编译Person.java:
这里写图片描述
-d . 表示生成的class文件放在当前目录下,因为Person.java在包cn.wh.com下,所以会在当前目录下生成cn/wh/com/Person.class文件
这里写图片描述

使用同样的命令编译Child.java和TestDemo.java
这里写图片描述
这里写图片描述

到这里,三个文件就编译完了,看下目录结构:
这里写图片描述

上面采用的是单个文件编译,其实也可以统一一下编译
这里写图片描述
效果和上面是一样的,接下来看下运行效果。


2.2运行

使用java命令运行刚才编译的TestDemo.class
这里写图片描述

运行成功,从这里也可以看出static代码块的执行顺序,static顺序优先于main方法,优先于构造函数,且子类的static优先于父类的够赞方法


3.涉及jar包的java文件编译运行

咱们用eclipse打个jar包来用。


3.1 eclipse打jar包,带main入口

将上面的三个文件打成jar包,步骤如下:

选择项目,右键–export
这里写图片描述

选择java/JAR
这里写图片描述

这里写图片描述

这里写图片描述

打包成功
这里写图片描述

看下jar包里的文件结构:
这里写图片描述

跟咱们自己编译出来的差不多。

运行:
这里写图片描述


3.2 eclipse打jar包,不带main入口

这个步骤跟上面基本一样,只是在最后不要知道main方法的路径即可,这里把TestDemo.java去掉后,安装上面的步骤打包,也命名为myJar.jar,目录结构:
这里写图片描述


3.3 使用jar包

TestDemo.java依赖myJar.jar,编译TestDemo.java文件:
将jar包和java文件放在同一目录下
这里写图片描述

编译
这里写图片描述

-cp指定依赖jar包路径,后面跟jar包名

经过以上编译过程呢,在当前目录下就生成了TestDemo.jva,当然是包含TestDemo的包路径的,如下:
这里写图片描述

运行:
这里写图片描述

完成


在开发过程中肯定不会自己手动编译这些文件,本文只是记录,了解下!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值