Java程序运行机制及cmd编译运行探究(一)准备工作

来源:互联网 发布:蔡康永的母亲 知乎 编辑:程序博客网 时间:2024/06/06 01:04

Java程序运行机制及cmd编译运行探究(一)准备工作




平时太依赖开发工具了,对Java的一些比较底层的东西不明白,现在脱离开发工具,在命令行写个小程序研究下整个流程。



1. 基本流程


Java是一种高级语言,它既具有编译型语言的特征,也具有解释型语言的特征。


它的运行过程一般要经过以下两个步骤:


(1) 编译

      把源代码翻译成与平台无关的字节码(.class)文件,用的是javac命令

(2) 运行

      解释执行与平台无关的字节码文件,用的是java命令。


2. 常用命令


要运用命令行进行Java程序的编译和运行需要一些基础的预备知识,先做个整理。


1. cmd基本用法


进入方式:win+R打开"运行",输入cmd,进入命令行。


常用命令:


常用格式含义经典举例含义cd+空格+目录
进入某个目录cd d:\test\utils
进入d:\test\utils目录

cd ..
返回上一级

cd ../..返回上两级,以此类推盘符名+冒号
切换盘符d:切换到d盘dir
列出当前目录下所有文件

cls清屏



2. java基本命令



javac srcFile(以.java结尾)编译srcFile,把生成的字节码文件放srcFile的相同路径

举例:

javac d:\cmdtest\Test.java

意义:编译d:\cmdtest目录下的Test文件,生成的字节码文件同样存在d:\cmdtest下



javac -d destdir srcFile(以.java结尾)编译srcFile,把生成的字节码文件放destdir的路径下

举例:

javac -d d:\cmdtest e:\Test.java

意义:编译e盘下的Test文件,生成的字节码文件存在d盘的cmdtest目录下

注意:这里的destdir可以是.,代表是当前目录

例:javac -d . e:\Test.java意思是编译e盘下的Test文件,生成的字节码文件存在命令行的当前目录下

(就是你命令行停在C盘的时候去编译E盘的Test文件,生成的字节码文件放在C盘下,而不是E盘)




javac -classpath filepath srcFile(以.java结尾)从filepath路径下找编译所需要用到所有相关字节码文件,再编译srcFile

举例:

javac -classpath d:\classpackage e:\Test.java

意义:e盘下的Test文件编译过程中需要用到一些字节码文件,这些文件去从d盘下的classpackage目录下去找,找到后完成Test文件的编译




java ClassName(类名)运行名字叫ClassName的类
举例:

java People

意义:运行People类的字节码文件

举个特殊情况:d:\javaclass\com\test\People.class,People类第一句package com.test;

这种情况比较复杂,有两点要注意:

1. 运行People字节码文件要在com路径下,命令为:java com.test.People(注意不是进入People字节码文件路径去运行java People)

2. javac命令srcFile可以是地址+文件名的组合,而java命令的类名部分只能是类名或者包加类名,不能加上地址,而第一点的com.test.People指的不是地址,

指的是全类名。

所以这种情况下在d盘根目录运行java javaclass\com.test.People是不行的,java javaclass\com\test\People就更不对了。




java -classpath filepath ClassName(类名)filepath路径下找运行所需要的所有相关字节码文件,再运行ClassName类

举例:参考java Classname(类名),就多提供一个寻找运行ClassName类时候其他相关字节码文件存放路径的参数


备注:

1. 以上我举的例子基本都是绝对路径,在实际情况下,javac命令还可以用相对路径来编译,例如.,..,../..等,但java不行,必须进入对应路径进行执行。

2. Window下原来斜杠/表示DOS参数,反斜杠\表示路径分隔符,现在的Windows内核在处理路径时确实可以同时支持斜杠和反斜杠,所以基本可以互用。



0 0
原创粉丝点击