命令行执行java编译过程分析

文为在命令下运行java程序,有助理解Java的目录结构以及路径寻找过程。

涉及classpath 和sourcepath的使用 。classpath路径下存储的为.java文件,sourcepath下存储的为.classes文件。

其目录结构如下,其中test的绝对路径为 /开发/项目/test

 

首先使用javac命令将ExceptionTest.java 文件编译,但是ExceptionTest.java中依赖了ExceptionZlz.java 和Person.java,所以编译的时候要指定sourcepath 和classpath 与 -d 类文件路径,如下代码

 

javac -sourcepath /开发/项目/test/source -classpath /开发/项目/test/classes /开发/项目/test/ExceptionTest.java -d /开发/项目/test/classes

 

这个过程我理解的执行过程大概为,编译时需要用到ExceptionZlz.java 和Person.java,所以先找到classpath目录发现没有这两个类的.class类文件,于是去sourcepath目录找到了这两个类的.java源文件,将他们编译成 。class文件放在对应的classpath目录中。

其中source目录中的类文件类名与目录结构必须对应 否则会出错,如Person.java的包名为sb;ExceptionZlz.java文件的包名为sb.ssbb。这里只与source下的相对路径对应即可。

当编译之后会在classes下生成对应目录结构相同的.class 文件,其中ExceptionTest.java 的包名为package test.sb; 所以其编译过后在classes目录结构如上。这里所说包名均值在 .java文件中定义的package名称。

Javac执行完毕,下面来说运行。

运行  java -classpath /开发/项目/test/classes test.sb.ExceptionTest

 因为-classpath指定了类文件目录 ,所以运行时直接指定包名加类名称就可以运行啦。

开始我考虑它jdk的类 ,其实这个不用操心,只要设置好了电脑系统的环境变量 java会自己找到它的原生类库的。

运行效果如下图。

 

 

我的ExceptionTest .java文件如下

 

其实这个东西还要自己去试,自己去尝试了才会思路清晰,我描述的不够清楚,这篇相当于一个小事件经历。

一些详细概念和原理可以去百度哈,像-classpath还可以设置jar 和zip文件,等等哈。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值