java入门知识点和环境准备(java入门经典)
mhr18 2024-10-18 06:48 26 浏览 0 评论
【JDK】
Windows环境,JDK安装
开发环境:同生产环境;生产环境:推荐使用最新稳定版的上一个稳定版本;
- 1、 下载JDK:地址
- 2、 安装JDK:自定义安装目录,注意jdk和jre需要放在不同的文件夹中。
- 3、 配置JDK环境变量。位置在 我的电脑->属性->高级->环境变量
JAVA_HOME:d:/jdk PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 测试JDK是否安装成功:运行->cmd ->java -version
环境变量: 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。
JAVA_HOME:Eclipse/Tomcat等JAVA开发的软件就是通过搜索JAVA_HOME变量来找到并使用安装好的JDK,如果你没有配置JAVA_HOME变量,你会发现Tomcat无法正常启动。
PATH:PATH指向搜索命令路径,如果没有配置这个PATH变量指向JDK的命令路径,会发现在命令行下。无法运行javac、java等命令。
CLASSPATH:CLASSPAH指向类搜索路径,.;表示在当前目录搜索,由于java程序经常要用到lib目录下的dt.jar和tools.jar下类,所以这两项也要加进来,如果在命令行编译和运行的程序还需要用到第三方的jar文件,则也需要把第三方JAR文件加入进来。
Mac环境,JDK安装
- 1、 下载JDK:地址
- 2、 安装JDK:双击即可。
- 3、 配置JDK环境变量。位置在 我的电脑->属性->高级->环境变量
# 查看jdk安装目录 # /usr/libexec/java_home Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home # 用户目录下,新建.bash_profile文件 cd ~ touch .bash_profile (如果该文件不存在,将创建一个空文件) open .bash_profile (调用记事本编辑该文件) # 配置jdk环境变量 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 配置maven环境变量 export MAVEN_HOME=/Users/xuxueli/programfils/apache-maven-3.3.9 # 配置path PATH=$PATH:$JAVA_HOME/bin PATH=$PATH:$MAVEN_HOME/bin export PATH # 配置生效 source .bash_profile
测试JDK是否安装成功: java -version mvn -version
CentOS环境,JDK手动安装
卸载旧版本jdk
# java -version # rpm -qa | grep java # rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
下载JDK
# wget http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin?AuthParam=1432052036_e95492a0a833fa9ce7be7b3ce1e9427e # mkdir -p /usr/local/java # cp jdk-6u45-linux-x64.bin /usr/local/java/ # cd /usr/local/java/
安装JDK
# chmod u+x jdk-6u45-linux-x64.bin (或:chmod 777 jdk-6u45-linux-x64.bin) # ./jdk-6u45-linux-x64.bin (rpm文件安装方式:rpm -ivh jdk-6u45-linux-x64.bin.rpm) JDK默认安装位置:/usr/local/java/
配置JDK环境变量
#vi /etc/profile (向文件里面追加以下内容:) export JAVA_HOME=/usr/local/java/jdk1.6.0_45 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#source /etc/profile (使修改立即生效)
> 验证安装 java javac java -version echo $PATH
### 【Maven】
- [官网](http://maven.apache.org/download.cgi)
- [官方教程](http://maven.apache.org/guides/getting-started/index.html)
- [官方五分钟入门](http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)
#### 前提
- 正确安装JDK,并配置环境变量
#### Windows下安装配置Maven
* 解压安装:
>前往[官网](http://maven.apache.org/download.cgi)下载Maven,并解压安装;
* 配置Windows环境变量;
MAVEN_HOME=D://maven
PATH=%MAVEN_HOME%\bin; + 其他
* 验证:
>在dos下mvn -version确认
* 配置本地仓库
>在Maven解压安装目录下 “\conf\settings.xml” 文件中配置
在windows下
<localRepository>e:/work/maven_lib</localRepository>
在Mac下
<localRepository>/Users/xuxueli/workspaces/maven-libs</localRepository>
```
- 配置中央仓库
不配置时,默认使用中央仓库(网速好的话,推荐使用);
国内网速质量差时,可配置OSChina提供的仓库镜像;
- (注意,maven3.3 需要jdk1.7+)
Mac下安装配置maven
# 用户目录下,新建.bash_profile文件 cd ~ touch .bash_profile (如果该文件不存在,将创建一个空文件) open .bash_profile (调用记事本编辑该文件) # 配置maven环境变量 export MAVEN_HOME=/Users/xuxueli/programfils/apache-maven-3.3.9 # 配置path PATH=$PATH:$MAVEN_HOME/bin export PATH # 配置生效 source .bash_profile
- 验证:
在terminal下mvn -version确认
- 配置本地仓库
在Maven解压安装目录下 “\conf\settings.xml” 文件中配置
<localRepository>/Users/xuxueli/workspaces/maven-libs</localRepository>
常用命令
mvn validate //验证工程是否正确,所有需要的资源是否可用 mvn compile//编译项目的源代码 mvn test-compile //编译项目测试代码 mvn test //使用已编译的测试代码,测试已编译的源代码 mvn package //已发布的格式,如jar,将已编译的源代码打包 mvn integration-test //在集成测试可以运行的环境中处理和发布包 mvn verify //运行任何检查,验证包是否有效且达到质量标准 mvn install //把包安装在本地的repository中,可以被其他工程作为依赖来使用 mvn deploy //在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享 mvn generate-sources //产生应用需要的任何额外的源代码,如xdoclet mvn archetype:generate //创建 Maven 项目 mvn compile //编译源代码 mvn test-compile//编译测试代码 mvn test //运行应用程序中的单元测试 mvn site //生成项目相关信息的网站 mvn clean //清除目标目录中的生成结果 mvn package //依据项目生成 jar 文件 mvn install //在本地 Repository 中安装 jar mvn eclipse:eclipse //生成 Eclipse 项目文件 // etc mvn -Dhttps.protocols=TLSv1.2 // 启用 TLSv1.2 协议,maven仓库要求
Maven 参数
-D 传入属性参数 -P 使用pom中指定的配置 -e 显示maven运行出错的信息 -o 离线执行命令,即不去远程仓库更新包 -X 显示maven允许的debug信息 -U 强制去远程参考更新snapshot包 例如 mvn install -Dmaven.test.skip=true -Poracle 其他参数可以通过mvn help 获取
maven scope(依赖范围控制)说明
在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:
- compile (编译范围) :compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。
- provided (已提供范围) :provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。
- runtime (运行时范围) :runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC 驱动实现。
- test (测试范围) :test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
- system (系统范围) :system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。
Maven中央仓库——你可能不知道的细节
- 地址 —— 目前来说,http://repo1.maven.org/maven2/ 是真正的Maven中央仓库的地址,该地址内置在Maven的源码中,其它地址包括著名的 ibiblio.org ,都是镜像。
- 规模 —— 每周有超过来自250,000开发者的70,000,000次访问,2010年的总访问量很有可能超过4,000,000,000。中央仓库存储了超过200,000,000的构件。
- 索引 —— 中央仓库带有索引文件以方便用户对其进行搜索,完整的索引文件大小约为60M,索引每周更新一次。
- 黑名单 —— 如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。
- 垃圾内容 —— 由于各种历史原因,中央仓库里面确实存在很多垃圾内容,例如不完整的POM,错误的maven-metadata.xml,主要的责任是开源项目上传内容时不太小心,目前中央仓库正致力于更规范的流程以防止新的垃圾内容进入。
- 背后的公司 —— Maven的托管在Apache的,但中央仓库不是Apache的资源,中央仓库是由Sonatype出资维护的。 提交内容 —— 只要你的项目是开源的,而且你能提供完备的POM等信息,你就可以提交项目文件至中央仓库,这可以通过Sonatype提供的开源Maven仓库托管服务实现。
- 非Maven用户 —— 除Maven之外,其它工具如Ivy和Gradle也使用Maven中央仓库。
【GIT】
- windows下Git安装与配置
- Mac-OSX下安装Git
- Git 常用命令速查表(图文+表格)
- Git 教程
GIT常用命令汇总
// 初始化 cd git-workspace git init git clone http://xxxxx.git cd xxxxx // 查看 git status git branch -a git branch -r // 拉取master分支到本地 git fetch origin master:master git checkout master // 获取远程分支master并merge到当前分支 git fetch origin master git pull origin master // 获取所有远程分支,并merge到本地分支 git fetch git pull // 在master基础上,新建分支,推送分支 git checkout master git fetch origin master git checkout -b XXX git push origin XXX // 加入缓存,提交代码,并push分支 git add xxx.java git commit -m "init project" git push orgin XXX // 在 branch_a 分支上 merge 分支 master git checkout branch_a git merge master git push orgin branch_a // 在 branch_a 分支上 rebase 分支 master (不推荐) git checkout branch_a git rebase master git push orgin branch_a // (merge操作会生成一个新的节点,之前的提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交,之前分支就没有了。) // 删除分支,大写D强制删除,push远程删除 git branch -d XXX git branch -D XXX git push origin :XXXX // 文件加入/移除stage(加入stage才可commit和push) git add xxx.imi git reset HEAD xxl.imi // .gitignore文件 加入.gitingore文件中的文件,不会被 “git status(检测未被git管理、git管理下被修改但未被commit和push的文件)”检测到; git rm --cached file/path/to/be/ignored // 冲突解决 add commit // 撤消上一个commit,但保留add的文件 git reset --soft HEAD~1 // 生成公钥,默认位置:~/.ssh $ ssh-keygen -t rsa -C "xxx@gmail.com" cat .\.ssh\id_rsa.pub 》》New SSH key ssh -T git@github.com // 更新仓库地址 git remote set-url origin remote_git_address // 更新config git config --list git config user.name git config user.email // query git config user.email "email info" // update each git config --global user.email "email info" // update global // 回滚commit git log git reset --hard <commit_id> git push origin HEAD --force // 放弃本地的修改,用远程的库覆盖本地 git fetch --all git reset --hard origin/master // 强制覆盖推送 git push -f origin/bbbbbb
Git常用命令
// 常用命令汇总 git clone <url> clone远程版本库 git status 查看状态 git diff 查看变更内容 git add . 跟踪所有改动过的文件 git add <file> 跟踪指定的文件 git mv <old> <new> 文件改名 git rm <file> 删除文件 git rm --cached <file> 停止跟踪文件但不删除 git commit -m "commit message" 提交所有更新过的文件 git log 查看提交历史 git reset --hard HEAD 撤销工作目录中所有未提交文件的修改内容 git checkout HEAD <file> 撤销指定的未提交文件的修改内容 git revert <commit> 撤销指定的提交 git branch 显示所有本地分支 git checkout <branch/tag> 切换到指定分支或标签 git branch <new-branch> 创建新分支 git branch -d <branch> 删除本地分支 git merge <branch> 合并指定分支到当前分支 git rebase <branch> Rebase指定分支到当前分支 git remote -v 查看远程版本库信息 git remote show <remote> 查看指定远程版本库信息 git remote add <remote> <url> 添加远程版本库 git fetch <remote> 从远程库获取代码 git pull <remote> <branch> 下载代码合并到当前分支 git push <remote> <branch> 上传代码到远程 git push <remote> :<branch/tag> 删除远程分支或标签
SVN
- windows7环境下svn服务器的配置及使用
- CentOS-6.3安装配置SVN
相关推荐
- 【预警通报】关于WebLogic存在远程代码执行高危漏洞的预警通报
-
近日,Oracle官方发布了2021年1月关键补丁更新公告CPU(CriticalPatchUpdate),共修复了包括CVE-2021-2109(WeblogicServer远程代码执行漏洞)...
- 医院信息系统突发应急演练记录(医院信息化应急演练)
-
信息系统突发事件应急预案演练记录演练内容信息系统突发事件应急预案演练参与人员信息科参与科室:全院各部门日期xxxx-xx-xx时间20:00至24:00地点信息科记录:xxx1、...
- 一文掌握怎么利用Shell+Python实现完美版的多数据源备份程序
-
简介:在当今数字化时代,无论是企业还是个人,数据的安全性和业务的连续性都是至关重要的。数据一旦丢失,可能会造成无法估量的损失。因此,如何有效地对分布在不同位置的数据进行备份,尤其是异地备份,成为了一个...
- docker搭建系统环境(docker搭建centos)
-
Docker安装(CentOS7)1.卸载旧版Docker#检查已安装版本yumlistinstalled|grepdocker#卸载旧版本yumremove-ydocker.x...
- 基础篇:数据库 SQL 入门教程(sql数据库入门书籍推荐)
-
SQL介绍什么是SQLSQL指结构化查询语言,是用于访问和处理数据库的标准的计算机语言。它使我们有能力访问数据库,可与多种数据库程序协同工作,如MSAccess、DB2、Informix、M...
- Java21杀手级新特性!3行代码性能翻倍
-
导语某券商系统用这招,交易延迟从12ms降到0.8ms!本文揭秘Oracle官方未公开的Record模式匹配+虚拟线程深度优化+向量API神操作,代码量直降70%!一、Record模式匹配(代码量↓8...
- 一文读懂JDK21的虚拟线程(java虚拟线程)
-
概述JDK21已于2023年9月19日发布,作为Oracle标准Java实现的一个LTS版本发布,发布了15想新特性,其中虚拟线程呼声较高。虚拟线程是JDK21中引入的一项重要特性,它是一种轻量级的...
- 效率!MacOS下超级好用的Linux虚拟工具:Lima
-
对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...
- 所谓SaaS(所谓三维目标一般都应包括)
-
2010年前后,一个科技媒体的主编写一些关于云计算的概念性问题,就可以作为头版头条了。那时候的云计算,更多的还停留在一些概念性的问题上。而基于云计算而生的SaaS更是“养在深闺人未识”,一度成为被IT...
- ORA-00600 「25027」 「x」报错(报错0xc0000001)
-
问题现象:在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:ORA-00600:内部错误代码,参数:[25027],[10],[0],[],[],[],[],[...
- 安卓7源码编译(安卓源码编译环境lunch失败,uname命令找不到)
-
前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...
- 编译安卓源码(编译安卓源码 电脑配置)
-
前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...
- 360 Vulcan Team首战告捷 以17.5万美金强势领跑2019“天府杯“
-
2019年11月16日,由360集团、百度、腾讯、阿里巴巴、清华大学与中科院等多家企业和研究机构在成都联合主办了2019“天府杯”国际网络安全大赛暨2019天府国际网络安全高峰论坛。而开幕当日最激荡人...
- Syslog 日志分析与异常检测技巧(syslog发送日志配置)
-
系统日志包含有助于分析网络设备整体运行状况的重要信息。然而,理解并从中提取有效数据往往颇具挑战。本文将详解从基础命令行工具到专业日志管理软件的全流程分析技巧,助你高效挖掘Syslog日志价值。Gr...
- 从Oracle演进看数据库技术的发展(从oracle演进看数据库技术的发展的过程)
-
数据库技术发展本质上是应用需求驱动与基础架构演进的双向奔赴,如何分析其技术发展的脉络和方向?考虑到oracle数据库仍然是这个领域的王者,以其为例,管中窥豹,对其从Oracle8i到23ai版本的核...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle基目录 (50)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (53)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)