GraalVM学习系列一:GraalVM介绍及安装方法,有了这个教程,可避免很多坑,本人亲自操作+淌雷后的经验

Jeffong
• 阅读 2806

什么是GraalVM呢?

这个东西好啊,这个东西是一个超级虚拟机,可虚可实,怎么说呢,它可以运行脚本代码,可以运行跨平台代码,最牛B的是,它TM还能把这些代码编译成机器码,你说上哪说理去,执行效率CUA的一下就上去了,速度可媲美C++,就是这么不讲武德。

它可以运行什么代码呢?

有:Java, Python, Ruby, JavaScript & Node.js, R, LLVM

这玩意儿都谁在用呢?

首先说的是以“福报”著称的阿里巴巴,用这玩意儿干啥呢?用他们自己开发的SOFA Boot框架写微服务应用,然后用GraalVM编译成机器码扔到服务器上,这样启动快,还省内存。

还有就是被墙的推特,推特有1000台服务器,装了1000个jvm,但是用了GraalVM,节省了8%——11%的CPU,仅Tweet服务就省了18%的机器。

GraalVM学习系列一:GraalVM介绍及安装方法,有了这个教程,可避免很多坑,本人亲自操作+淌雷后的经验 GraalVM学习系列一:GraalVM介绍及安装方法,有了这个教程,可避免很多坑,本人亲自操作+淌雷后的经验

官方网站:点这里就是官方网站

GraalVM怎么安装呢?

第一步

去官网下载,有两个版本,一个是丐版(社区版),一个是壕版(企业版),下个丐版就行,壕版的要钱。

丐版会跳到github里去下载 (社区版各版本下载地址),有两个版本,Java 8 和 Java 11的,做web的话,Java 8就行,做FX就得下Java 11了,这个GraalVM里没集成 OpenJFX,得自己下,下完了把文件复制到GraalVM目录里。

下载OpenJFX的网站:点这里点这里点这里

第二步

解压下载下来的zip压缩包,然后配环境变量,和Java配的方法一样,起名起JAVA_HOME就行,如果你想做FX,再配一个GRAALVM_HOME,值和JAVA_HOME一样

GraalVM学习系列一:GraalVM介绍及安装方法,有了这个教程,可避免很多坑,本人亲自操作+淌雷后的经验

然后运行一下 java -version

GraalVM学习系列一:GraalVM介绍及安装方法,有了这个教程,可避免很多坑,本人亲自操作+淌雷后的经验

第三步(编译为平台码用,以Windows为例) 下载Microsoft C++生成工具:点这里

然后安装如图所示

GraalVM学习系列一:GraalVM介绍及安装方法,有了这个教程,可避免很多坑,本人亲自操作+淌雷后的经验

装完了之后配置环境变量 ★重要★

INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\shared;D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\include.;
LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17134.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17134.0\ucrt\x64;D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\lib\x64;
PATH=%PATH%;D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64

然后安装GraalVM插件 命令:

  C:\Users\Administrator> gu install native-image

如果出现jar包下载超时,请手动下载jar包,然后放到 \lib\installer\components 文件夹下,就不用cmd去下载了。

安装完成后 运行下面的命令查看已安装的插件

C:\Users\Administrator>gu list
ComponentId              Version             Component name                Stability           Origin
--------------------------------------------------------------------------------------------------------
js                       21.0.0.2            Graal.js                      -
graalvm                  21.0.0.2            GraalVM Core                  -
native-image             21.0.0.2            Native Image                  Early adopter       github.com

此时,所有环境搭建的工作全部完毕。

点赞
收藏
评论区
推荐文章
lucien-ma lucien-ma
2年前
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到:!/usr/bin/envpython或!/usr/bin/python首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1.!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释
浩浩 浩浩
3年前
JVM--虚拟机方法调用
概述Java能做到一次编译,随处运行,最要是归功于java虚拟机和class文件,我们知道,计算机是0和1的世界,并且只认0和1,所以不管是什么语言什么编译类型,最终给计算机的都是0和1,java也不例外,但是我们的java编译成了class文件,class怎么就转换成0和1了呢,或者说机器码呢?其实这一步是虚拟机帮我们干的。当然,虚拟机是建立在不同
Wesley13 Wesley13
2年前
java常见问题整理
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令
Wesley13 Wesley13
2年前
java 性能优化:35 个小细节,让你提升 java 代码的运行效率
前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但
Wesley13 Wesley13
2年前
.net core 面试题
第1题,什么是ASPnetcore?首先ASPnetcore不是aspnet的升级版本。它遵循了dotnet的标准架构,可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。第2题,aspdotcore有哪些好的功能?第一是依赖注入。第二是日志系统架构。第三是引入了一个跨平台的网络服务器,kestre
Stella981 Stella981
2年前
Linux下多版本python共存时,默认执行路径修改方法
遇到的问题和环境是这样:首先workspace上存在一个Python2.7和一个Python3.5,其中Python3.5是理想的运行环境,有很多自定义模块,运行代码时需要这个环境。原本默认是在这个环境下跑的,后来安装了一个叫miniconda3的东西,里面自带一个Python3.7环境,于是问题来了,所有执行程序全部变成了使用这个新的Python3.7环境
Wesley13 Wesley13
2年前
Java字节码详解
也许你写了无数行的代码,也许你能非常溜的使用高级语言,但是你未必了解那些高级语言的执行过程。例如大行其道的Java。Java号称是一门“一次编译到处运行”的语言,但是我们对这句话的理解深度又有多少呢?从我们写的java文件到通过编译器编译成java字节码文件(也就是.class文件),这个过程是java编译过程;而我们的java虚拟机执行的就是字节码文件
Stella981 Stella981
2年前
ReactiveCocoa2实战
概述为什么要使用RAC?一个怪怪的东西,从Demo看也没有让代码变得更好、更短,相反还造成理解上的困难,真的有必要去学它么?相信这是大多数人在接触RAC时的想法。RAC不是单一功能的模块,它是一个Framework,提供了一整套解决方案。其核心思想是「响应数据的变化」,在这个基础上有了Signal的概念,进而可以帮助减少状态变量(可
Stella981 Stella981
2年前
Android应用如何监听自己是否被卸载
Android应用如何监听自己被卸载呢,Android系统没有提供这个回调方法。想想感觉是不可能监听到的,自己的代码都被卸载掉了,怎么来执行操作来监听呢。后来看到360这个流氓大哥,还真实现了,还挺稳定的。于是,在网上各种搜索。网上还是有很多人讨论,说怎么怎么着,来弄。我也是研究了很久。网上的方案总结说来有1.广播,只能监听到别人卸载。自己被
Wesley13 Wesley13
2年前
Java代码性能优化总结
前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有
Jeffong
Jeffong
Lv1
不知道写点啥
文章
2
粉丝
0
获赞
0