基础知识总结之 jdk部分
第一次安装jdk 按照操作走完 会出现 C:\Program Files\Java\jdk1.8.0_91 和 C:\Program Files\Java\jre1.8.0_91 两个目录 (平级目录) 这里jre和jdk中的jre目录一模一样,为什么会出现这种呢?
简单说下:jdk是面向java开发者的 是java开发的sdk,jdk目录下的bin目录最主要的是javac 编译来使用,lib中有dt.jar,tools.jar主要是编译过程中运行环境使用,jdk下的jre目录,主要作用是运行编译好的class文件来使用的,其中,jre下的lib中的rt.jar是所有基础类库,就是java文件中import后面的class基础类,bin目录下主要的是java,也就是JVM,java虚拟机用来运行class来使用,运行class的时候就会调用引用的基础类库.
C:\Program Files\Java\jre1.8.0_91是面向用户的,主要作用和jdk中jre作用一样。在eclipse中只需要选择jre 就可以运行java程序,因为eclispe有自己的java编译器,和classpath的配置。
编译好的class文件是字节码文件,字节码文件是二进制的类库文件,经过JVM的解释运行,成为机器码文件和OS交互运行。
在eclispe中开发,不需要配置path classpath ,只需要制定jre,整个编译 由eclipse自己的编译器来实现(JAVA文件称class文件).
不考虑eclispe的java开发如下:
配置path : ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 目的是可以在任意地方使用javac java 比较简单,不然要输入整个javac java指令路径.
配置classpath: ;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 指定classpath类加载路径为 jdk下面的lib路径,tools.jar是编译时候来使用的.
注意:JVM的默认class load路径是jre下面的rt.jar (默认就可以加载所有的基础类库,不需要设置).
windows 编译 java文件:
1》该java文件没有引用其他外部类的时候: javac xxx.java 默认是在当前目录查找 java文件,当前目录没有则报错,也可以采用全路径来指定java文件。编译的时候会自动使用classpath下的tools.jar 以及jre/lib/rt.jar来 编译java文件。注意:java文件在classpath下 ,当前目录不在classpath,也会报错.
2>java文件引用其他外部类: 也会在当前目录查找java文件,没有则报错,也可以采用全路径来指定java文件。首先会编译外部类,注意:
2.1》如果外部java文件或者该文件对应的class文件存在于classpath中,则成功编译。
2.2》如果外部java文件不在classpath或者java文件的同级目录下。使用 javac -classpath 外部java文件或者class的目录 xxx.java来编译。
运行class文件: 先查找当前目录 在查找classpath。 java xxx 其中xxx.class在当前目录或者classpath中都成功,如果引用类存在 保证引用class存在于classpath中成功,或者使用 java -classpath .;外部类目录 xxx即可。
linux下 如果不配置classpath jdk8默认的是 classpath是 . 也就是当前目录
引入第三方jar包
javac -classpath /data/cn.nubia.framework.jar WeatherTest.java
java -classpath .:/data/cn.nubia.framework.jar WeatherTest
基础知识总结之 jdk部分的更多相关文章
- 计算机基础知识以及java JDK、JRE
计算机 计算机(Computer)全称:电子计算机,是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机.常见的形式有台式计算机.笔 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- maven基础知识
1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- Ant学习-001-ant 基础知识及windows环境配置
一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...
- Java之--Java基础知识
一.软件基础知识 1.软件:一系列按特定顺序组织的计算机数据和指令的集合. 1)系统软件:DOS.windows.linux. 2)应用软件:QQ.扫雷等. 2.软件开发就是制作软件. 3.人与计算机 ...
- Java中实现异常处理的基础知识
Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...
随机推荐
- C语言数组元素的查询
在实际开发中,经常需要查询数组中的元素.例如,学校为每位同学分配了一个唯一的编号,现在有一个数组,保存了实验班所有同学的编号信息,如果有家长想知道他的孩子是否进入了实验班,只要提供孩子的编号就可以,如 ...
- Erstudio8.0怎么用?Erstudio8.0汉化版详细使用教程
Erstudio8.0使用教程 打开ERstudio,点击新建出现如图对话框: 选择第一个,表示创建一个新的关系型 数据库模型 这里提一点数据库模型分为relational(关系)和dimension ...
- 【BZOJ4881】5月月赛D 线段游戏 树状数组+set
Description quailty和tangjz正在玩一个关于线段的游戏.在平面上有n条线段,编号依次为1到n.其中第i条线段的两端点坐 标分别为(0,i)和(1,p_i),其中p_1,p_2,. ...
- Angular2+学习第3篇 基本知识-组件
一.插值表达式 基本用法与ng1一样. 可以使用 Angular 内置的 json 管道,来显示对象信息,管道用来格式化数据 import { Component } from '@angular/c ...
- Strut2中的标签
Struts2的标签用法和示例 1)s:property标签:property 标签用来输出一个值栈属性的值 示例: 输出 Action 属性 customerId 的值: <s:propert ...
- window.location下的属性说明
属性 说明 window.location.href 完整的url window.location.protocol 协议 window.location.hostname 主机名 window.lo ...
- Wow! Such Doge!---hdu4847(字符串水题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4847 题意就是求给出的文章中共有多少个doge,不区分大小写直接用strstr做就可以了: #incl ...
- servlet实现多文件打包下载
当用户一次下载多个文件时.普通情况是,每下载一个文件,均要弹出一个下载的对话框.这给用户造成了非常大不便. 比較理想的情况是,用户选择多个文件后.server后端直接将多个文件打包为zip.以下贴出实 ...
- 使用Django和Python创建Json response
版权声明:本文为博主原创文章,欢迎转载. https://blog.csdn.net/fengyu09/article/details/30785101 使用jquery的.post提交,并期望得到多 ...
- java-mybaits-00503-延迟加载
1.什么是延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...