【GraalVM实战】Mac M1系统搭建GraalVM环境
Mac M1系统搭建GraalVM环境,为实战做准备
CSDN话题挑战赛第2期
参赛话题:Java技术分享
文章目录
引言
GraalVM:高性能,云原生,多语言
GraalVM基本介绍
先来一张GraalVM的架构图
GraalVM是一个高性能的JDK,其设计目标是提高Java和其它JVM语言实现的应用的运行速度,与此同时,也提供了一些流行的开发语言的运行时环境,比如JavaScript和Python
GraalVM的核心组件如下
- Java HotSpot VM
- Graal编译器 - 顶级JIT编译器
- 多语言API
- GraalVM Updater - 安装扩展功能的工具
安装GraalVM
安装GraalVM很简单,相当于新增一个JDK
GraalVM官网的快速开始页面提供了4种不同系统的安装方式
- Linux
- macOS
- Windows
- Docker Container
这里选择macOS安装方式,没有提供dmg安装方式,需要在Github下载压缩包
下载后用tar命令解压,移动到/Library/Java/JavaVirtualMachines目录下(需要sudo)
sudo tar -xzf graalvm-ce-java<version>-darwin-amd64-<version>.tar.gz
sudo mv graalvm-ce-java<version>-<version> /Library/Java/JavaVirtualMachines
完成后可以用/usr/libexec/java_home命令检查
接下来配置环境变量,以及JDK多版本切换快捷方式,可以参考之前的一篇文章
到这一步,GraalVM环境就配置完成了
在IDEA中配置GraalVM
在IDEA社区版2022.2.3中新建项目graalvm-feature,并添加GraalVM到JDK
这一步也很简单
代码测试:Java with JavaScript
还是国际惯例,Hello GraalVM吧
public class Main {
public static void main(String[] args) {
System.out.println("Hello GraalVM!");
}
}
Java代码能跑了,接下来测试一下多语言特性,那么Python可以上场了吧
使用前先使用gu安装对应的语言环境,gu是GraalVM提供的组件安装工具(GraalVM Component Updater),需要用sudo提高权限
但安装失败了,不甘心,那么试试node.js吧,还是一样的结果。用gu available命令查看,发现支持的多语言组件很少,除了JavaScript,其它的都不会
继续查看文档,发现M1芯片node.js和Python都还不支持,看来只能和JS做好朋友了
测试代码如下,参考官网的示例代码
import org.graalvm.polyglot.*;
public class Main {
public static void main(String[] args) {
// Java代码作为启动代码
System.out.println("Hello GraalVM! from Java");
System.out.println("Let's go with JavaScript");
// 启用多语言
Context polyglot = Context.create();
// JavaScript
polyglot.eval("js", "console.log('Hello GraalVM! from JavaScript')");
// Python,未安装GraalVM对应的运行环境,执行会报错
polyglot.eval("python", "print('Hello GraalVM! from Python')");
}
}
执行结果如下
以上就是GraalVM的安装过程,还是比较简单的,只是Mac M1支持的多语言比较少,本系列后期会慢慢探索GraalVM的强大功能
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)