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
仙境传说ro爱如初见最新版下载v1.7.0 安卓版
角色扮演 1.45G
下载qq飞车手游腾讯游戏下载v1.48.0.63360 安卓最新版
赛车竞速 1.99G
下载qq飞车手机版官方正版下载v1.48.0.63360 安卓版
赛车竞速 1.99G
下载完美世界游戏下载v1.726.0 安卓最新版本
角色扮演 1.64G
下载冒险岛枫之传说官方版下载v2.190.2472 安卓最新版本
角色扮演 1.60G
下载宝宝巴士宝宝不怕黑手机版(更名宝宝不怕)下载v9.86.00.00 安卓最新版
其它手游 129.2M
下载会说话的奇奇小游戏(改名爱说话的奇奇)下载v9.86.00.00 安卓版
其它手游 146.4M
下载逆水寒手游下载v2.3.10985069 安卓最新版本
角色扮演 1.34G
下载咪咕快游云游戏ios版下载v10.2.69 iphone版
下载
宝宝巴士快乐启蒙小游戏下载v8.7.46 安卓最新版本
下载
三国谋定天下手游官方下载v1.12.0 安卓版
下载
网易游戏蛋仔派对官服版下载v1.0.183 安卓正版
下载
2025蛋仔派对官方下载v1.0.183 安卓最新版本
下载
宝宝巴士奇妙蛋糕店ios版下载v9.82.0001 iphone手机版
下载
蛋仔派对iphone官方版下载v1.0.165 ios最新版
下载
崽崽zepeto苹果版下载v3.72.210 iphone汉化版
下载