Loading

JAVA环境变量 Jar包 war包

JAVA环境变量、Path、ClassPath、Java_Home

环境变量是指在操作系统中用来指定操作系统运行环境的一些参数

① Path:

是操作系统自带的,运行没有指定位置的程序的默认路径。

Java是编译型语言,源码文件是.java,而编译后的.class文件才是真正可以被JVM执行的字节码。

所以,classpath就是一组目录的集合,它设置的搜索路径与操作系统相关。

用命令执行java类有两个过程

第一个是 javac    可以将java源文件编译为class字节码文件

第二个是 java      可以运行class字节码文件

这两个指令实际上是运行下面两个应用程序。

C:\Program Files\Java\jdk1.8.0_201\bin\javac.exe

C:\Program Files\Java\jdk1.8.0_201\bin\java.exe

我们在现存环境变量Path后面追加";C:\Program Files\Java\jdk1.8.0_201\bin"了以后,

当我们执行javac HelloWorld.java的时候,我们不需要指定指令javac所在的位置,

因为操作系统会自动去path中定义的" C:\Program Files\Java\jdk1.8.0_201\bin"里面寻找javac.exe然后来执行

② Java_Home:

把JAVA_HOME设为JDK的安装路径(如C:\Program Files\Java\jdk1.8.0_201),此路径下包括lib,bin,jre等文件夹 ,

当我们需要java路径的时候你写%Java_Home%就可以了,而不用输入一长串地址。

上面也就变成了";%Java_Home%\bin"

③ ClassPath:

classpath是JVM用到的一个环境变量,它用来指示JVM如何搜索class

JVM需要知道,如果要加载一个xyz.Hello的类,应该去哪搜索对应的Hello.class文件。

不推荐在系统环境变量中设置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

jar包 和 war包

jar包

全称 Java Archive File(Java 档案文件),通常 JAR 文件是一种压缩格式,和 ZIP 格式兼容,与 ZIP格式不同的是它 包含了一个名为 META-INF/MANIFEST.MF的清单文件,这个清单文件是由生成 JAR 包的时候系统自动创建的 与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。

war包

war包是JavaWeb工程发布用的包,
是Sun提出的一种web应用程序格式,与jar类似,
war包中的文件按照一定目录结构来组织。
根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。
通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,
而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。
通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。

区别

WAR文件代表了一个Web应用程序,JAR是类的归档文件。

posted @ 2021-01-15 19:52  然爸  阅读(329)  评论(0)    收藏  举报