当前位置: 首页 > news >正文

windows下JDK安装和配置

术语:
JDK:JAVA开发工具包
JRE:JAVA运行环境
JVM:JAVA虚拟机


JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

[1453897848127054439.png]



安装过程中可以自定义安装目录等信息,例如我们选择安装目录为C:\Program Files\Java\jdk1.7.0_13。

配置环境变量

1、右击“计算机”的“属性”选项,选择“高级系统设置”,如下图所示:

[1453897848184009780.png]



2、然后出现如下图所示的对话框,点击“环境变量”:

[1453897848332033074.png]



3、然后会看到如下图所示的对话框:
 

[1453897850114081939.png]


4、按以下具体的步骤配置在"系统变量"中设置3项属性:JAVA_HOME,PATH,CLASSPATH

①    选择上图所示的“新建”


[1453897851145005731.png]

变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.7.0_13 (这里是你安装 java 的路径)

②    选择环境变量中的“path”,然后点击编辑按钮,如下图所示:
 

[1453897851558084935.png]



变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

③    上一步确定之后,再“新建”,一样的操作, 在“变量值”一栏的最前面添加以下变量值:

变量名:CLASSPATH
变量值:.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar

这样java的环境已经配置完成了。

测试JDK是否安装成功

1、"开始"->;"运行",键入"cmd"(未配置java环境之前打开的cmd是不行的,要新开的才行);

2、键入命令"java -version","java","javac"几个命令,出现画面,说明环境变量配置成功;
 

[1453897851709077757.png]



JDK各目录存放文件及用途:

-bin目录: JDK开发工具(即编译、运行、调试等系统工具)的可执行文件
-lib目录: 开发工具使用的归档包文件
-jre: Java 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器,
但不包含开发环境中的开发工具
-demo: 含有源代码的程序示例
-include: 包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术

bin目录下常用的命令详解:

javac.exe -- Java编译器,将java源程序编译成字节码文件
java.exe – Java解析器,运行字节码文件
javadoc.exe -- Java API 文档生成器,根据java源代码即说明语句生成html文档
apt.exe -- java 注释处理器
appletviewer.exe – applet浏览器,执行包含applet的html文件
jar.exe -- java文件压缩打包工具
jdb.exe -- Java 调试器,可逐行执行程序,设置断点和检查成员变量
javah.exe -- C 头文件和stub生成器,用于写本地化方法,例如生产JNI样式的头文件
javap.exe -- class文件 反编译工具,显示字节码文件中的可访问方法和数据
extcheck.exe -- 用于检测jar包中的问题

手工编译运行java程序:

新建Hello Word.java文件:

public class HelloWorld{
   public static void main(String[] args){
     System.out.println("Hello World!");
   }
}


[1453897851741074005.png]


javac HelloWorld.java 编译生成class文件,java HelloWorld 运行程序

[1453897851999056331.png]


java HelloWorld运行程序并输出“Hello World!”。

整个过程可以总结为:
1.编译javac :把JAVA源文件编译成class字节码文件
2.运行JAVA:运行class文件


关于jdk安装的三大疑问:

1、为什么要设置Java环境变量JAVA_HOME、PATH、CLASSPATH?
PATH环境变量:通过PATH系统去寻找可执行的java文件,作用是指定命令搜索路径,在shell下面执行命令时,默认先从当前目录寻找,如果没有找到,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序并执行。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待设置好 PATH变量后,就可以在任何目录下执行javac/java等工具。

CLASSPATH环境变量:加载目录,作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

JAVA_HOME环境变量:它指向jdk的安装目录,Eclipse、Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

2、jre 和 jdk 有什么区别?

jre:提供了java程序运行的必要环境平台,如果只安装了jre,那么 cmd 命令行中只能执行 java 指令,不能执行 javac

jdk:提供了java的编程环境,它包含编译调试的环境功能,包含 jre;

3、为什么安装完jdk会有两个jre?

C:\Program Files\Java\jre7
C:\Program Files\Java\jdk1.7.0_13\jre (跟上面的jre在bin目录下多了个server文件夹)

两套 jre ,是针对不同的工作职责进行分工,不同的 jre 负责各自范围的内容
当用户只需要执行 java 的程序时,那么 C:\Program Files\Java\jre7 下的 jre 就行;
当用户是 java 开发人员,需要 java 开发环境,那么开发时,系统就会优先去找 java 、 javac 这些命令本身的目录或者他们的父目录的 jre ;
这样开发时一般运行的是 jdk 下的 jre ;而运行外部程序时,一般运行的是C:\Program Files\Java\jre7,实现了分工,不同的 jre 负责各自范围的内容。

补充三个lib目录区别:
    jdk下的lib包括java开发环境的jar包,是给jdk用的,例如jdk下有一些工具,可能要用该目录中的文件。例如,编译器等。
    jre下的lib只是运行java程序的jar包,是为jvm运行时候用的。包括所有的标准类库,和扩展类。
    jdk下的JRE下的lib是开发环境中,运行时需要的jar包。最典型的就是导入的外部驱动jar包。因为编译时,系统找的是jdk下的jre。而不是最外层的jre。



@注意:
本文由东亮博客提供
如需转载,烦请注明出处:http://www.lindongliang.cn/news88
有任何问题可以留言!

相关文章:

  • nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolC
  • 警告:不能读取 AppletViewer 的属性文件
  • JDK目录结构
  • IIS8.0, IIS7.0提示“请求筛选模块被配置为拒绝包含双重转义序列的请求”处理办法
  • linux、windows中ping大数据包的命令格式
  • IIS7中的自定义 404页面错误- 500.19
  • 关于struts2中action请求会执行两次的问题
  • 解决Mac OS lion下(ubuntu等linux也一样)启动tomcat的Cannot find ./catalina.sh 的问题
  • Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
  • 记录下mybatis中#{}和${}传参的区别
  • eclipse 内存不够用报错Internal Error
  • eclipse编译校验JS卡死解决办法
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
  • SpringBoot: No active profile set, falling back to default profiles: default , 不一定是依赖的问题
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 2017 前端面试准备 - 收藏集 - 掘金
  • canvas 五子棋游戏
  • CentOS 7 修改主机名
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • LeetCode29.两数相除 JavaScript
  • nginx 配置多 域名 + 多 https
  • passportjs 源码分析
  • Puppeteer:浏览器控制器
  • Python打包系统简单入门
  • 阿里研究院入选中国企业智库系统影响力榜
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 机器学习中为什么要做归一化normalization
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 盘点那些不知名却常用的 Git 操作
  • 巧用 TypeScript (一)
  • 网络应用优化——时延与带宽
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Android开发者必备:推荐一款助力开发的开源APP
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (2.2w字)前端单元测试之Jest详解篇
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (力扣)1314.矩阵区域和
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (一)RocketMQ初步认识
  • (转)【Hibernate总结系列】使用举例
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)一些感悟
  • ******之网络***——物理***
  • **python多态
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET是什么
  • .Net中间语言BeforeFieldInit