2022-03-22
在写代码之前,我们先花点时间来了解一下 java 编译和运行的过程,如下图:
里面涉及到 两个 命令符:
javac: 将 java源文件(即 .java 文件)编译成 java字节码(即 .class文件);
作用:编译期就是将我们写的java源代码交给编译器执行的过程,起翻译的作用,该过程主要对java源代码的语法进行检查,如果没有语法错误,就将源代码编译成字节码文件。
java : 启动 JVM ,加载并运行 .class 文件作用:将字节码文件(.class文件)加载到内存中交给java虚拟机执行,直到程序执行结束的过程,该过程主要对程序的逻辑错误进行检查,如果没有逻辑错误,程序的功能得到实现,输出结果。
编译期和运行期的内存分配区别:①编译期只是在程序的字节码文件中产生一些控制程序运行时分配内存的指令,仅仅是知道内存分配的大小以及存放的位置,不做具体的分配操作。第一步:java代码
下面这段示例代码可以说是非常简单了,main是一个入口函数,我们在搞清楚 java 代码 编译和运行 过程的同时,也来讲解一下 args 这个字符串数组参数,
其实 args 是一个命令行参数 , 装的是用户在命令行中输入的参数。
package test; import java.util.Arrays; public class array { public static void main(String[] args){ System.out.println(Arrays.toString(args)); } }第二步:用 javac 编译源文件
这一步执行的前提是你环境变量配置好了。
javac test/array.java javac 你要编译的的源文件,路径一定要搞对,否则找不到执行完这个命令之后,你会在源文件的同级目录下发现多了一个 对应的 .class 文件
第三步:开启JVM , 运行程序
java test.array params1 params2 java 包名 [params|可选]不知道大家有没有注意过,你执行 " java 完整的包名 "的时候 ,你所在的目录是 src
我们可以做个试验,你返回 src 的上一层,执行 “java ./src/完整包名” 也是报 错误: 找不到或无法加载主类 ..src.test.changeData.class
这与 JVM 寻找 classpath 顺序有关。应当遵循如下寻找顺序:
现在我们假设classpath是.;C:\work\project1\bin;C:\shared,当JVM在加载abc.xyz.Hello这个类时,会依次查找:
\abc\xyz\Hello.class
C:\work\project1\bin\abc\xyz\Hello.class
C:\shared\abc\xyz\Hello.class
注意到.代表当前目录。如果JVM在某个路径下找到了对应的class文件,就不再往后继续搜索。如果所有路径下都没有找到,就报错。
classpath的设定方法有两种:
在系统环境变量中设置classpath环境变量,不推荐;
在启动JVM时设置classpath变量,推荐。
我们强烈不推荐在系统环境变量中设置classpath,那样会污染整个系统环境。在启动JVM时设置classpath才是推荐的做法。实际上就是给java命令传入-classpath或-cp参数:
java -classpath .;C:\work\project1\bin;C:\shared abc.xyz.Hello或者使用-cp的简写:
java -cp .;C:\work\project1\bin;C:\shared abc.xyz.Hello没有设置系统环境变量,也没有传入-cp参数,那么JVM默认的classpath为.,即当前目录:
java abc.xyz.Hello上述命令告诉JVM只在当前目录搜索Hello.class
海岛奇兵九游账号登录版下载v57.1.1 安卓9游版
策略塔防 456.1M
下载奇迹觉醒手游官方版下载v16.3.0 安卓正版
其它手游 1.38G
下载全民奇迹2官方版下载v14.0.0 安卓最新版
其它手游 1.96G
下载光遇虫虫助手版下载v0.13.9 安卓版
休闲益智 1.77G
下载剑侠世界3手游官方正版下载v1.6.24425 安卓版
角色扮演 1.84G
下载汽车城宝宝巴士游戏(改名为宝宝汽车城市)下载v9.86.00.01 安卓版
其它手游 169.3M
下载宝宝汽车城市游戏下载v9.86.00.01 安卓最新版
其它手游 169.3M
下载fifaonline4官方移动端最新版本(足球在线4移动版)下载v1.2503.0005 安卓版
体育运动 160.0M
下载腾讯欢乐麻将全集ios版下载v1.0.4 iphone官方版
下载
龙之谷2手游官方版下载v1.53.2 安卓最新版
下载
宝宝英语冒险最新版(更名宝宝字母小镇)下载v9.86.00.00 安卓版
下载
宝宝巴士奇妙恐龙世界游戏下载v9.86.00.00 安卓最新版
下载
派对主题乐园游戏下载v9.86.00.00 安卓版
下载
节奏大师游戏下载v2.9.13.29145 手机安卓最新版本
下载
神奇数字宝宝app下载v9.86.00.00 安卓版
下载
奇妙玩具修理店无限金币版下载v9.83.00.00 安卓最新版
下载