jre

jdk与jre的区别

可紊 提交于 2020-12-23 03:58:39
很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。 JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Java 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。 JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机

[转帖]jdk与jre等的关系

Deadly 提交于 2020-04-07 07:21:00
https://zhuanlan.zhihu.com/p/45824326 这个跟java 9提供的jigsaw有关 先说第一点,你应该避免使用oracle jdk而应该使用 open jdk ,去openjdk.java.net上下载,而不是java.com上下载 因为oracle jdk顾名思义,是oracle的版权产品,open jdk免费开源的真jdk 9之后的jdk,已经模块化了,模块化之后,就不再区分jvm,jre和jdk了 过去jvm是jre的子集,jre对比jvm多了rt.jar标准包的内容 而jre是jdk的子集,jdk对比jre多了javac等工具 那么9的jigsaw之后,所有这些,都被拆成了一个又一个jmod,模块 比如java.base.jmod,jdk.javac.jmod等 那用户可以根据自身需要,自由组合出自己的runtime,而这个runtime可能是jdk 也可能是jre+jdk的一部分,也可能是jre的一部分+jdk的一部分,或者干脆就只有jvm的一部分 而且用户可以添加第三方提供的native扩展,比如常见的两个扩展是javafx(gui)和graal(多语言)扩展,graal 19.3多语言扩展将会在2019的11月19日发布,到时候你可以利用该工具扩展出支持javascript,python,ruby,r等语言的运行时(runtime)

JVM类加载器机制与类加载过程

烈酒焚心 提交于 2020-04-07 03:53:59
该文章是我转载的,不过我对文中的一些地方有不同的理解,所以修改几处,还请作者见谅。 原贴:http://m.blog.csdn.net/article/details?id=50529868 读完本文,你将了解到: 一、为什么说Java语言是跨平台的 二、Java虚拟机启动、加载类过程分析 三、类加载器有哪些?其组织结构是怎样的? 四、双亲加载模型的逻辑和底层代码实现是怎样的? 五、类加载器与Class<T> 实例的关系 六、线程上下文加载器 一、为什么说Java语言是跨平台的? Java语言之所以说它是跨平台的、可以在当前绝大部分的操作系统平台下运行,是因为Java语言的运行环境是在Java虚拟机中。 Java虚拟机消除了各个平台之间的差异,只要操作系统平台下安装了Java虚拟机,那么使用Java开发的东西都能在其上面运行。如下图所示: Java虚拟机对各个平台而言,实质上是各个平台上的一个可执行程序。例如在windows平台下,java虚拟机对于windows而言,就是一个java.exe进程而已。 二、Java虚拟机启动、加载类过程分析 下面我将定义一个非常简单的java程序并运行它,来逐步分析java虚拟机启动的过程。 package org.luanlouis.jvm.load; import sun.security.pkcs11.P11Util; /** *

JAVA错误:java.lang.UnsupportedClassVersionError: Bad version number in .class file

跟風遠走 提交于 2020-04-06 17:46:50
错误描述: java.lang.UnsupportedClassVersionError: Bad version number in .class file 错误原因: 安装的jre版本与编译用的jre版本不一致 解决办法: 在MyEclipse中设置: 1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单中选择JDK版本. 2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉菜单中选择自身电脑上安装的JDK版本(必需与步骤1中的JDK版本一致) 本文借鉴 http://dev.firnow.com/course/3_program/java/javajs/20100719/462822.html 来源: https://www.cnblogs.com/king1302217/archive/2011/05/12/2044516.html

JAVA学习 :Java程序设计环境

强颜欢笑 提交于 2020-04-06 03:43:21
JVM:Java虚拟机 保证了Java的跨平台性(Java是跨平台的,而JVM不是) JRE:Java程序运行环境(JVM+核心类库) JDK:Java开发工具箱(JRE+开发工具) 1.下载JDK 访问Oracle网址下载。 2.安装JDK A:在D盘建立一个目录,如 develop B:傻瓜式安装,修改安装的路径到d盘的develop C:路径如下 JDK: D:\develop\Java\jdk1.7.0_72\ JRE: D:\develop\Java\jre7\ 配置path环境变量 作用: 让Java命令可以任意目录下使用。 配置方法: 方式1   把JDK的bin目录配置到path中。   修改系统属性中的path环境变量:   D:\develop\Java\jdk1.7.0_72\bin;以前的path内容 b:方式2   创建新的变量名称:   变量名:JAVA_HOME   变量值:D:\develop\Java\jdk1.7.0_72 修改path变量:   用%%引用JAVA_HOME即可。   %JAVA_HOME%\bin;以前的path内容 等价于下面的内容:   D:\develop\Java\jdk1.7.0_72\bin;以前的path内容 来源: https://www.cnblogs.com/shaofanglazi/p/6672087

java 线程安全

本秂侑毒 提交于 2020-04-04 09:21:12
1. synchronized 2.Lock package com.jack.test2; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class MyRunnable3 implements Runnable { int len = 5; int tikets = len; Object obj = new Object(); Lock l = new ReentrantLock(); @Override public void run() { while (true) { l.lock(); try { if (tikets > 0) { System.out.println(Thread.currentThread().getName() + "卖票中:第" + (len + 1 - tikets) + "张票"); tikets--; } } finally { l.unlock(); } } } } package com.jack.test2; import static java.lang.Thread.sleep; public class MyRunnable implements Runnable { int

浅谈JDK、JRE、JVM区别与联系

好久不见. 提交于 2020-04-03 15:01:23
浅谈JDK、JRE、JVM区别与联系 摘要 JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。 一、JDK JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 JDK是java开发工具包,基本上每个学java的人都会先在机器 上装一个JDK,那他都包含哪几部分呢?在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的 是以下四个文件夹:bin、include、lib、 jre。有这样一个关系,JDK包含JRE,而JRE包 含JVM。 bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 jre:java运行环境 1234 (注意:这里的bin、lib文件夹和jre里的bin、lib是 不同的) 总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。 二

JDK安装与配置

戏子无情 提交于 2020-04-02 10:09:14
1.下载安装JDK 今天下载发现oracle官网下载竟然要账号,我注册好了,发现竟然无法登录(报错),然后我就发现了这个cn版的服务,不需要注册 进去后选自己要下的版本,win64就下这个 下载好直接双击安装就可以了,步骤和安装别的软件是一样一样的,记得改下安装目录(最好不要有中文),不改也可以,默认在C盘 jre不用装,jdk自带 2.修改环境变量 最好配在用户变量里,与系统变量解耦,万一改错了也不至于把系统配置改坏。 key:JAVA_HOME(随便取),value:安装目录 然后在path里加上%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin 最后win+r进入cmd,输入java -version,提示如下代表装好了 来源: https://www.cnblogs.com/mztl-1122/p/12617663.html

Java基础(一)

核能气质少年 提交于 2020-03-27 00:08:30
1. Java 特点 面向对象、分布化、简单化、多线程、安全、跨平台。 2. Java 技术平台 l Java SE 适用于桌面应用,适用于 c/s 架构,但通常不使用,常用 C# 语言等。 l Java EE 适用于大中小企业级应用。 l Java ME 适用于微平台应用程序,比如手机等。 3. 开发环境搭建和介绍 工具: JDK 3.1. 环境搭建 请看后续博客(环境配置分类中)。 3.2. 环境介绍 JDK:Java 开发工具包(包含 JRE ) JRE:Java 运行环境 JRE=JVM+Java SE 标准类库 JDK=JRE+ 开发工具集(例如 Javac 等) 3.3. JDK 安装目录介绍 l bin 存放可执行文件。 l lib 存放 Java 类库文件。 l db 存放 Java 数据库文件。 l include 存放本地方法文件(都是 .h 的头文件)。 l jre Java 运行环境。 l src 压缩文件 Java 源代码。 4. Java 命名规范 包名:全小写 类名、接口名:大驼峰 变量名、方法名:小驼峰 常量名:全大写,单词以 ‘ _ ’隔开 5. 注释 单行注释 //这是单行注释 多行注释 /* 这是多行注释 */ 文档注释 (Java特有) /** 这是文档注释 */ 6. 转义符 \n 换行 \t 作用类似 Tab \b 退格键 \r 回车键

Jvm加载jar包的顺序

廉价感情. 提交于 2020-03-26 11:55:48
使用-XX:+TraceClassPaths或者在服务器上执行jinfo时,都能得到classpath包含的jar包,例如: java.class.path = local/aaa/lib/spring-data-redis-1.8.3.RELEASE.jar:/usr/local/aaa/lib/spring-tx-4.3.8.RELEASE.jar:/usr/local/aaa/lib/spring-jdbc-4.3.7.RELEASE.jar:/usr/local/aaa/lib/classmate-1.3.1.jar:/usr/local/aaa/lib/javax.servlet-api-3.1.0.jar:/usr/local/aaa/lib/mongodb-driver-3.4.2.jar:/usr/local/aaa/lib/xml-apis-2.0.2.jar:/usr/local/aaa/lib/ufc-api-utils-2.0.0.jar:/usr/local/aaa/lib/log4j-over-slf4j-1.7.25.jar:/usr/local/aaa/lib/tomcat-embed-websocket-8.5.14.jar:... 这些jar的顺序不同的机器总是不一样的,平时没有问题,所以也没有细想过,这些jar包的顺序为什么会不一样的。 在