我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java 8中的JRE怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java 8中的JRE怎么用

这篇文章给大家介绍Java 8中的JRE怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Oracle公司如期发布了Java 8正式版!没有让广大javaer失望。对于一个人来说,18岁是人生的转折点,从稚嫩走向成熟,法律意味着你是完全民事行为能力人,不再收益于未成年人保护法,到今年为止,java也走过了18年,java8是一个新的里程碑,带来了***的诸多特性,lambda表达式,Stream API,新的Date time api,多核并发支持,重大安全问题改进等,相信java会越来越好,丰富的类库以及庞大的开源生态环境是其他语言所不具备的,说起丰富的类库,很多同学就吐槽了,java该减肥了,确实是该减肥,java8有个很好的特性,即JEP161(http://openjdk.java.net/jeps/161 ),该特性定义了Java SE平台规范的一些子集,使java应用程序不需要整个JRE平台即可部署和运行在小型设备上。开发人员可以基于目标硬件的可用资源选择一个合适的JRE运行环境。

好处

更小的Java环境需要更少的计算资源。

一个较小的运行时环境可以更好的优化性能和启动时间。

消除未使用的代码从安全的角度总是好的。

这些打包的应用程序可以下载速度更快。

概念

紧凑的JRE分3种,分别是compact1、compact2、compact3,他们的关系是compact1<compact2<compact3,他们包含的API如下图所示

Java 8中的JRE怎么用

使用javac根据profile编译应用程序

javac &ndash;bootclasspath, or javac &ndash;profile <profile> 

如果不符合compact的api,则报错。

$ javac -profile compact2 Test.java  Test.java:7: error: ThreadMXBean is not available in profile 'compact2'  ThreadMXBean bean = ManagementFactory.getThreadMXBean();   ^  Test.java:7: error: ManagementFactory is not available in profile 'compact2'  ThreadMXBean bean = ManagementFactory.getThreadMXBean();                       ^  2 errors

使用工具开发的效果

Java 8中的JRE怎么用

JPEDS工具使用

java8新增一个工具,用来分析应用程序所依赖的profile,有三个参数比较常用 -p,-v,-r

import java.util.Set;  import java.util.HashSet;   public class Deps {    public static void main(String[] args) {      System.out.println(Math.random());      Set<String> set = new HashSet<>();    }  }
************** PROFILE ********************  jdeps -P Deps.class   Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar     <unnamed> (Deps.class)        -> java.io                                            compact1        -> java.lang                                          compact1        -> java.util                                          compact1   ************** VERBOSE ********************  jdeps -v Deps.class   Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar     Deps (Deps.class)        -> java.io.PrintStream                                        -> java.lang.Math                                             -> java.lang.Object                                           -> java.lang.String                                           -> java.lang.System                                           -> java.util.HashSet     ************** RECURSIVE ********************  jdeps -R Deps.class   Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar     <unnamed> (Deps.class)        -> java.io                                                    -> java.lang                                                  -> java.util                                            /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/jce.jar -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar     javax.crypto (jce.jar)        -> java.io                                                    -> java.lang                                                  -> java.lang.reflect                                          -> java.net                                                   -> java.nio                                                   -> java.security                                              -> java.security.cert                                         -> java.security.spec                                         -> java.util                                                  -> java.util.concurrent                                       -> java.util.jar                                              -> java.util.regex                                            -> java.util.zip                                              -> javax.security.auth                                        -> sun.security.jca                                   JDK internal API (rt.jar)        -> sun.security.util                                  JDK internal API (rt.jar)        -> sun.security.validator                             JDK internal API (rt.jar)     javax.crypto.interfaces (jce.jar)        -> java.lang                                                  -> java.math                                                  -> java.security                                           javax.crypto.spec (jce.jar)        -> java.lang                                                  -> java.math                                                  -> java.security.spec                                         -> java.util                                            /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/jce.jar     java.security (rt.jar)        -> javax.crypto                                       JDK internal API (jce.jar)     sun.security.util (rt.jar)        -> javax.crypto                                       JDK internal API (jce.jar)        -> javax.crypto.interfaces                            JDK internal API (jce.jar)        -> javax.crypto.spec                                  JDK internal API (jce.jar)

在linux上构建profile

$ hg clone http://hg.openjdk.java.net/jdk8/jdk8/  $ cd jdk8  $ make images profiles :   ## Finished profiles (build time 00:00:27)  ----- Build times -------  Start 2013-03-17 14:47:35 End 2013-03-17 14:58:26 00:00:25 corba  00:00:15 demos  00:01:50 hotspot  00:00:24 images  00:00:21 jaxp  00:00:31 jaxws  00:05:37 jdk  00:00:43 langtools  00:00:18 nashorn  00:00:27 profiles  00:10:51 TOTAL  -------------------------  Finished building Java(TM) for target 'images profiles' $ cd images  $ ls -d *image  j2re-compact1-image j2re-compact2-image j2re-compact3-image j2re-image j2sdk-image

编译后compact大致的占用空间 

Java 8中的JRE怎么用

总结

如今,物联网正风行一时。我们看到大量不同的设备在市场上出现,每一种的更新速度都越来越快。java需要一个占用资源少的JRE运行环境,紧凑的JRE特性的出现,希望能带来以后的物联网的发展,甚至还是会有大量的java应用程序出现在物联网上面。目前oracle也发布了针对raspberry pi的JRE了。

另外该特性也是为java9的模块化项目做准备,模块化特性是javaer所期待的特性。他是解决业务系统复杂度的一个利器,当然OSGI也是相当的出色。但osgi对于新学者来说未免太复杂了。

关于Java 8中的JRE怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java 8中的JRE怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java 8中的JRE怎么用

这篇文章给大家介绍Java 8中的JRE怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Oracle公司如期发布了Java 8正式版!没有让广大javaer失望。对于一个人来说,18岁是人生的转折点,从稚嫩走向成熟
2023-06-17

java jre的作用有哪些

Java Runtime Environment (JRE) 是一个运行 Java 程序的环境,它包含了 Java 虚拟机(JVM)和 Java 核心类库。JRE 的作用包括:1. 执行 Java 程序:JRE 提供了 Java 虚拟机,它
2023-09-21

java中jdk和jre的区别是什么

JDK(Java Development Kit)和JRE(Java Runtime Environment)是Java开发中常用的两个术语,它们之间的区别如下:1. JDK是Java开发工具包,包含了编译器(javac)、调试器(jdb)
2023-08-25

java中jdk和jre环境变量怎么配置

在Java中,配置JDK和JRE环境变量是为了使计算机能够找到Java的安装路径并正确运行Java程序。以下是在Windows操作系统上配置JDK和JRE环境变量的步骤:1. 首先,确定已经安装了JDK。可以在命令行中输入`javac -v
2023-08-25

eclipse的jre怎么设置

要设置Eclipse的JRE,您可以按照以下步骤进行操作:打开Eclipse IDE。在菜单栏中选择“Window” > “Preferences”。在弹出的对话框中,在左侧导航栏中选择“Java” > “Installed JREs”。点
eclipse的jre怎么设置
2024-04-09

java jre的安装方法是什么

要安装Java JRE(Java Runtime Environment)的方法,可以按照以下步骤进行操作:1. 首先,访问Oracle官方网站(https://www.oracle.com/java/technologies/javase
2023-09-21

Eclipse中怎么配置JRE和JDK

在Eclipse中配置JRE和JDK非常简单,只需按照以下步骤操作:打开Eclipse,点击菜单栏的“Window”菜单,选择“Preferences”。在Preferences窗口中,选择“Java” -> “Installed JRE
Eclipse中怎么配置JRE和JDK
2024-04-03

怎么在Android中兼容Java 8语法

本篇文章为大家展示了怎么在Android中兼容Java 8语法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java 8概述Java 8是Java开发语言非常重要的一个版本。Oracle从2014年
2023-06-03

Java 8中CompletableFuture如何使用

Java 8中CompletableFuture如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建一个完成的CompletableFuture最简单的例子就是使用一
2023-06-15

Java 8中重复注解是怎样的

Java 8中重复注解是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 什么是重复注解允许在同一申明类型(类,属性,或方法)的多次使用同一个注解一个简单的例子java
2023-06-17

java utf-8 乱码怎么办

java utf-8 乱码怎么办?1.在html首部编写如下代码:推荐教程:《java学习》 示例如下:login.jsp若不成功,2.对乱码工程文件属性修改,乱码如图所示 login.jsp 右键工程下的login.js
java utf-8 乱码怎么办
2017-03-29

Java 8中怎么实现函数式编程

这期内容当中小编将会给大家带来有关Java 8中怎么实现函数式编程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我被 Stack Overflow 上网友“mip”提的一个有趣的问题给难住了。该问题是:1
2023-06-17

Java 8中Nashorn脚本引擎有什么用

小编给大家分享一下Java 8中Nashorn脚本引擎有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Nashorn JavaScript 引擎是Java
2023-06-17

tomcat的jre环境变量怎么配置

配置Tomcat的JRE环境变量可以通过以下步骤进行:打开Tomcat的安装目录,在该目录下找到bin文件夹。在bin文件夹中找到catalina.bat文件(Windows系统)或catalina.sh文件(Linux系统)。打开cata
tomcat的jre环境变量怎么配置
2024-04-09

lambda表达式怎么引入Java 8 项目中

lambda表达式怎么引入Java 8 项目中?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java 8 lambda表达式引入详解及实例eclipse 下载安装Help
2023-05-31

怎么理解Java 8并行流

本篇内容主要讲解“怎么理解Java 8并行流”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Java 8并行流”吧!并行流认识和开启并行流什么是并行流: 并行流就是将一个流的内容分成多个数
2023-06-16

Jdk中没有jre文件夹怎么办?如何解决?

这篇文章主要介绍了Jdk中没有jre文件夹怎么办?如何解决的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-06

Java中怎么对字符串进行utf-8编码

本篇内容介绍了“Java中怎么对字符串进行utf-8编码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java对字符串进行utf-8编码我们
2023-07-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录