iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >不需要jre运行Java是真的吗
  • 529
分享到

不需要jre运行Java是真的吗

2024-04-02 19:04:59 529人浏览 薄情痞子
摘要

本篇内容主要讲解“不需要jre运行Java是真的吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“不需要jre运行Java是真的吗”吧!今天我们要介绍的是spri

本篇内容主要讲解“不需要jre运行Java是真的吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“不需要jre运行Java是真的吗”吧!

今天我们要介绍的是spring-native,它可以让你的spring  boot程序,体验graalvm编译器的特性,把你的应用直接编译成native的!

不需要再安装jre,你的应用程序将和exe一样,直接在目标机器上运行!而且启动时间不到1秒钟。

要体验这个功能,我们从Spring Boot拿一个demo。

https://start.spring.io/

在这里选择这个实验性的功能SpringNative。下载下来之后,就可以使用Maven进行打包测试

不需要jre运行Java是真的吗

mvn spring-boot:build-image gradle bootBuildImage

看一下这无敌的启动速度.... 0.038秒... 几乎是瞬时的!

不需要jre运行Java是真的吗

神奇!

这一切,都得益于graalvm编译器。不过,你至少要把jdk升级到11才能用,也算是堆Java8用户的一种别样的驱动吧。

当然,只有在2.4.5以后的SpringBoot版本中,才支持Spring Native。

GraalVM是什么?

graalvm也是oracle项目,它的代码地址是:Https://GitHub.com/oracle/graal

项目地址是:www.graalvm.org/docs/

graalvm是一个想要统一天下的虚拟机。因为它相比较与HotSpotVM,还能够运行其他语言比如ruby,pythonPHP等。

它是一个新的JVM,不同的是由于做了适配,它能够让不同的语言跑在同一个vm下面。

看看下面这张图,就知道graalvm的野心有多大。

不需要jre运行Java是真的吗

这还没完,它最吸引人的地方就在于,它能够将应用代码,直接打包成native的二进制可执行代码,运行时连JVM都不需要了!

大家都知道,native和跑在vm里完全是两个档次,否则也不会有jit这么牛x的技术存在了。连AndroidiOS都知道,native的应用流畅性比跑在monotouch上或者hybrid上高很多很多,对于追求性能的企业级应用来说,这个功能就更加实用一些。

让人惊讶的是,它为各个语言实现了一个可以沟通的桥梁。比如我看好js中的某个库,不需要重新开发一个了,在Java中直接就可以用。这是因为,graalVM开发了跨语言互操作协议,能保证跨语言的互操作性。

现在这个功能,大多数平台已经支持了。

不需要jre运行Java是真的吗

什么叫做native呢?考虑下面这份代码。

public class Example {     public static void main(String[] args) {         String str = "Native Image is awesome";         String reversed = reverseString(str);         System.out.println("The reversed string is: " + reversed);     }      public static String reverseString(String str) {         if (str.isEmpty())             return str;         return reverseString(str.substring(1)) + str.charAt(0);     } }

通常情况下,我们直接这样运行,或者打包成jar包。

javac Example.java java Example

但我们还可以多一步,就是把class文件native化。

native-image Example

执行的时候,只需要输入 ./Example 就可以了。

有什么好处?

使用native编译的应用,可以实现秒级别的启动,运行更快,占用内存更小。它与主流的部署方式如微服务k8s等,更加的切合。

但它与传统的JVM也有很多不同,主要体现在:

  • 系统的性能分析会在编译阶段就给出

  • 没用的部分和代码将不会编译,直接会被移除,这得益于前些java版本的模块化

  • 需要提前对反射、资源和动态代理进行转换,没有类加载的延迟

  • classpath在编译阶段固定

  • class将不会被懒加载,回在启动的时候一股脑放到内存

虽然native有很多好处,但它的编译时间却很长,因为要做大量的代码静态分析,这也是所有native程序的通病吧。

End

这种thin  jar的思路,是不是感觉Java的发展越来越像golang了呢?Docker镜像也会因为这种改变便得更小更纯粹,而脱离jre的Java应用也越来越像一个真正的程序了。

但可惜的是,这种编译成native的思路虽然好,现阶段还是无法和Golang相抗衡,主要还是在于编译器的差异上。

但愿graalvm能够继续发力,带java继续飞上几十年,养我三代子孙!

到此,相信大家对“不需要jre运行Java是真的吗”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 不需要jre运行Java是真的吗

本文链接: https://www.lsjlt.com/news/68064.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 不需要jre运行Java是真的吗
    本篇内容主要讲解“不需要jre运行Java是真的吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“不需要jre运行Java是真的吗”吧!今天我们要介绍的是spri...
    99+
    2024-04-02
  • 你真的需要学习 Java、NumPy 和 Django 吗?
    随着人工智能、大数据和云计算等技术的快速发展,编程语言也越来越多样化。目前,Java、NumPy 和 Django 是三个非常流行的编程语言和框架。但是,对于初学者来说,是否需要学习这些技术呢?让我们一起探讨一下。 Java Java 是...
    99+
    2023-09-27
    学习笔记 numy django
  • 你真的需要了解Bash吗?
    Bash是一种强大的命令行解释器,它是Linux和macOS操作系统上的默认Shell。尽管它是如此重要,但很多人并不了解Bash的实际用途。在本文中,我们将探讨Bash的重要性以及它如何帮助我们更好地管理和控制计算机系统。 Bash是什么...
    99+
    2023-08-15
    path bash http
  • WebApp是否真的需要jQuery
    这篇文章给大家介绍WebApp是否真的需要jQuery,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先要承认jQuery的强大魅力,是jQuery陪伴着我们度过桌面浏览器开发的每一天...
    99+
    2024-04-02
  • 打包 ASP:你真的需要它吗?
    打包 ASP:你真的需要它吗? 随着互联网技术的发展,越来越多的网站开始采用ASP技术进行开发。在ASP开发中,打包是一个非常重要的环节。但是,在实际开发过程中,我们是否真的需要打包ASP呢?本文将对这个问题进行探讨。 首先,我们需要了解什...
    99+
    2023-10-27
    重定向 打包 面试
  • 你真的需要 Java 教程来学习 Unix 索引吗?
    在学习Unix索引的过程中,许多人会选择参考Java教程。但是,你真的需要Java教程来学习Unix索引吗?在本文中,我们将探讨这个问题,并提供一些实用的Unix索引代码示例。 首先,让我们看一下Java教程和Unix索引之间的区别。Jav...
    99+
    2023-08-04
    教程 unix 索引
  • 基于Java的自然语言处理IDE:你真的需要吗?
    随着人工智能技术的不断发展,自然语言处理(NLP)成为了一个热门的领域。而基于Java的自然语言处理IDE也逐渐受到人们的关注。但是,你真的需要一款基于Java的自然语言处理IDE吗? 首先,让我们来了解一下什么是自然语言处理。自然语言处理...
    99+
    2023-11-04
    自然语言处理 索引 ide
  • 你真的需要Java、Apache和Laravel来存储你的数据吗?
    在开发一个网站或应用程序时,存储数据是一个至关重要的任务。为了解决这个问题,许多开发人员通常会使用Java、Apache和Laravel等技术。但是,你真的需要这些技术来存储你的数据吗?本文将会探讨这个问题,并提供一些替代方案。 首先,让我...
    99+
    2023-07-21
    apache laravel 存储
  • gitee注册时是否需要用真实姓名吗
    Gitee是中国最大的开源技术社区之一,如果你是一名程序员或者是想要参与开源项目的人士,那么注册成为Gitee的会员就是必须的。但是,对于很多初次使用Gitee的人来说,会有一个很常见的问题,那就是在注册Gitee账号时是否需要使用真实姓名...
    99+
    2023-10-22
  • Windows7系统启动需要多长时间?是真的只需15秒吗
    微软在Windows 7官方博客中暗示,下一代操作系统Windows 7的启动时间只需15秒。 这是一个相当短的时间 !但是,我们不能忘记的是,Windows Vista系统,微软在开发之前就许下过多承诺,结果在产品正式...
    99+
    2023-06-02
    win7 启动系统 多长时间 Windows7
  • Python 文件 IDE 容器:你真的需要它吗?
    Python 是一种流行的编程语言,广泛用于数据科学、Web 开发、自动化脚本等领域。为了方便 Python 开发者编写、调试和运行 Python 代码,出现了许多 Python IDE 工具,如 PyCharm、VSCode 等。而近年...
    99+
    2023-08-25
    文件 ide 容器
  • 异步编程接口:你真的需要它吗?
    随着计算机科学的快速发展,异步编程接口成为了越来越多开发者关注的话题。但是,你真的需要它吗?在本文中,我们将讨论异步编程接口的优缺点,以及在什么情况下使用它最为合适。 首先,让我们先了解异步编程接口的概念。异步编程接口允许程序在执行某些操...
    99+
    2023-10-01
    windows 异步编程 接口
  • 你真的需要掌握Python、Unix、Shell和npm吗?
    在当今互联网时代,计算机技术得到了广泛的应用,作为一名程序员,我们需要掌握各种技术来提高自己的竞争力。在这些技术中,Python、Unix、Shell和npm是非常重要的一部分。但是,你真的需要掌握这些技术吗? Python是一种高级编程语...
    99+
    2023-08-24
    unix shell npm
  • LeetCode的编程挑战:你真的需要缓存吗?
    在软件开发中,性能一直是一个重要的话题。当我们的应用程序面对大量的数据和请求时,我们需要确保应用程序的性能不会受到影响,同时也需要确保应用程序的可扩展性。在这个过程中,缓存是一个非常有用的工具。 缓存是一种将数据存储在内存中的技术,以便将...
    99+
    2023-07-02
    leetcode 编程算法 缓存
  • 电视剧里的代码真能运行吗?
    大家好,欢迎来到 Crossin的编程教室 ! 前几天,后台老有小伙伴留言“爱心代码”。这不是Crossin很早之前发过的内容嘛,怎么最近突然又被人翻出来了?后来才知道,原来是一部有关程序员的青春偶像剧《点燃我,温暖你》在热播,而剧中有一段...
    99+
    2023-09-25
    python 开发语言
  • Python 异步编程:你真的需要 path 框架吗?
    在 Python 中,异步编程已经成为越来越流行的编程方式。它可以让你在单个进程中处理大量并发连接,从而提高应用程序的性能和可伸缩性。在异步编程中,常见的框架包括 asyncio、Tornado 和 Twisted 等,而 path 是其...
    99+
    2023-11-10
    异步编程 框架 path
  • ASP 接口框架文件:你真的需要它吗?
    在 ASP.NET Web 应用程序中,接口通常是用于定义 Web 应用程序的契约,以及实现基本的功能。接口可以帮助开发人员更好地组织代码,并提供一种强类型方式,以确保应用程序的正确性和一致性。而在 ASP.NET Web 应用程序中,接...
    99+
    2023-07-28
    接口 框架 文件
  • 钉钉企业版要收费吗是真的吗
    但是,如果企业需要使用钉钉企业版,可能会收取一定的费用。对于一些大型企业来说,他们可能会考虑到软件的使用成本,因此可能会选择购买一些其他的软件,如Slack、Zoom等。对于中小型企业来说,他们可能会选择使用一些更加实惠的软件,如Googl...
    99+
    2023-10-28
    企业版 吗是真
  • 你真的需要自然语言处理吗?PHP和Bash是否足够?
    自然语言处理(NLP)是一项重要的技术,它使计算机能够理解和处理自然语言,例如英语和中文。但是,是否真的需要使用专门的NLP工具和库来处理文本?在本文中,我们将探讨这个问题,并介绍一些使用PHP和Bash处理文本的技术。 首先,让我们看一下...
    99+
    2023-07-02
    api bash 自然语言处理
  • 你真的需要Python、Git和Shell来管理存储吗?
    近年来,Python、Git和Shell三种技术在软件开发和数据管理领域中越来越受到关注。但是,你真的需要这三种技术来管理存储吗?本文将探讨这个问题,并提供一些演示代码来帮助你更好地了解这些技术。 首先,让我们看看Python。Python...
    99+
    2023-08-13
    git shell 存储
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作