Java环境变量配置
本文为看完这篇文章的笔记:https://www.jianshu.com/p/d63b099cf283
看完从此对环境变量不在困惑和恐惧
- PATH
配置完该变量之后就可以在任意目录下执行java命令,如果要覆盖JDK版本,需要将新的JDK版本添加在老版本的左边,因为
搜索顺序是从左向右。
%JAVA_HOME%/bin/;%JAVA_HOME%/jre/bin
- CLASSPATH
从字面意义上理解为"path of class",那么具体的作用就是指定Java类所在的目录,如果文件目录如下
|--Desktop
| └─ Main.java
| ├─ target
| └─ Main.class
那么在Desctop文件夹下执行Java命令就需要使用-classpath链接至目标class文件
java -classpath ./target Main
本机的配置
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%MAVEN_HOME%\bin;
所以可以看到CLASSPATH配置中都会有一个.;,意思就是缺少-classpath参数时默认在当前目录下寻找目标class文件
- JAVA_HOME
前面两个变量引用了该变量,故该变量也需要正确配置
C:\Program Files\Java\jdk1.8.0_51\
mvn
本文为看完这边文章的整理:https://www.jianshu.com/p/0fb5e3fb704d
这篇文章对maven的讲解非常透彻,推荐大家都去看一下
maven生命周期,声明周期中包含多个phase,如下为全部的phases
validate: 用于验证项目的有效性和其项目所需要的内容是否具备
initialize:初始化操作,比如创建一些构建所需要的目录等。
generate-sources:用于生成一些源代码,这些源代码在compile phase中需要使用到
process-sources:对源代码进行一些操作,例如过滤一些源代码
generate-resources:生成资源文件(这些文件将被包含在最后的输入文件中)
process-resources:对资源文件进行处理
compile:对源代码进行编译
process-classes:对编译生成的文件进行处理
generate-test-sources:生成测试用的源代码
process-test-sources:对生成的测试源代码进行处理
generate-test-resources:生成测试用的资源文件
process-test-resources:对测试用的资源文件进行处理
test-compile:对测试用的源代码进行编译
process-test-classes:对测试源代码编译后的文件进行处理
test:进行单元测试
prepare-package:打包前置操作
package:打包
pre-integration-test:集成测试前置操作
integration-test:集成测试
post-integration-test:集成测试后置操作
install:将打包产物安装到本地maven仓库
deploy:将打包产物安装到远程仓库
在maven中,执行任何一个phase时,例如mvn install 都会将该阶段之前的phase全部执行一遍
maven中除了phase外,还有goal,那么如何来理解goal这个概念呢?
可以把每一个phase看做是Java中的接口,而goal就是这个接口的实现类,goal具体定义了每个阶段该如何执行,每一个
goal中都有一个execute()方法用于执行该phase所要完成的任务,那么这个goal反映到pom.xml文件就是maven的插件plugin
了,例如
compile阶段的maven-compiler-plugin插件
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
总结manven中的lifecycle,phase,goal,plugin之间的关系如下:
![](https://img.haomeiwen.com/i1312339/adb4a573a6e30c21.png)
在maven中,有一个非常著名的principle就是convention over configuration(约定优于配置)。maven默认从<项目根目录>/src/main/java这个目录去查找Java源文件,编译后的class文件会保存在<项目根目录>/target/classes目录。
jar命令
- 压缩包
jar cvf filename.jar a.class b.class: 压缩指定文件;
jar cvf weibosdkcore.jar *: 全部压缩;
- 解压包
jar xvf CountScore.jar
- 运行刚生成的jar包
java -jar CountScore.jar
4.显示包文件
jar tf CountScore.jar
- 显示详细信息
jar tvf CountScore.jar
网友评论