上一篇介绍到,我们在Eclipse里导出jar包后,直接点击jar包就能运行。
假设这里有一个人,他在他的电脑上接收了这个jar包,可是,无论他狂点jar包多少次,
电脑还是一点反应都没有,这时候他就应该了解一下原理了。
我们点击jar包时,电脑会自动从环境变量中寻找能加载运行这个jar包的软件,这里他要找的的软件叫做JRE(java runtime environment)。
回顾一下:
- 我们安装Eclipse,Tomcat的时候,都必须先安装一个叫jdk的东西,看起来这两个挺像的(都以j开头,都有三个字母哈哈)。
- 我们知道,虚拟机(jvm)编译class文件为机器码,使机器能执行。
那么这三者有什么关系呢?
jdk包含了jre,jre包含了jvm。
jvm的作用是编译.class文件为机器码,使文件运行。
针对不同的系统,有不同的jvm版本,使得.class文件在不同的平台上都能被运行,所以说“write once,run anywhere”
jre相对于jvm,多了jvm解析.class文件时用到的包。
所以只有jvm是编译不出来.class文件的。
jdk在jre的基础上,增加了编译器,可以把.java文件编译成.class文件;还提供了java,javac,javap等便捷的命令。
例子:你文件夹里有一个fiary.java文件,现在你想运行它。
你在命令行里输入“javac fiary.java”,这时在同级目录下产生了一个fiary.class文件。
然后你在命令行里输入“java fiary.class”或者“java fiary”,这时候fiary.java文件里的代码就开始运行了。
这个时候你在dos窗口上的操作和你在Eclipse里的console里操作没什么区别。