javajvm

Use Java to Implement JVM

Лицензия

Лицензия

Группа

Группа

com.github.anilople
Идентификатор

Идентификатор

javajvm
Последняя версия

Последняя версия

1.1
Дата

Дата

Тип

Тип

zip
Описание

Описание

javajvm
Use Java to Implement JVM
Ссылка на сайт

Ссылка на сайт

https://github.com/anilople/javajvm
Система контроля версий

Система контроля версий

https://github.com/anilople/javajvm

Скачать javajvm

Зависимости

compile (4)

Идентификатор библиотеки Тип Версия
ch.qos.logback : logback-core jar 1.2.3
org.slf4j : slf4j-api jar 1.7.25
ch.qos.logback : logback-classic jar 1.2.3
org.objenesis : objenesis jar 3.1

test (2)

Идентификатор библиотеки Тип Версия
org.junit.jupiter : junit-jupiter-engine jar 5.5.2
org.junit.platform : junit-platform-runner jar 1.5.2

Модули Проекта

Данный проект не имеет модулей.

Java JVM

Build Status

使用Java 8来实现一个纯解释执行的Java虚拟机。

代码偏向于可读性,忽略性能。

项目的目的在于更加深入的学习和理解Java虚拟机。

怎么跑起来?

hello, world

release中下载最新的版本的压缩包,解压后,你会看到2个文件

  • HelloWorld.java:未编译的Java代码,里面的内容即将运行在实现的JVM上
  • javajvm-xxx.jar:JVM的实现,本质上是一个jar包,里面放着编译好的Java代码。

xxx代表版本号,不要在Shell中真的输入xxx,请将javajvm-xxx.jar自行换成对应的文件。

javajvm-xxx.jar所在的目录下,命令行中执行

java -jar javajvm-xxx.jar

运行上面的命令后,你会看到一些提示信息。

现在,将HelloWorld.java编译成HelloWorld.class,然后用JVM运行。

javac HelloWorld.java # 编译,会生成文件 HelloWorld.java
java -jar javajvm-xxx.jar HelloWorld # 运行刚刚编译出来的文件

如何用这个JVM跑自己的代码?

修改上述中的文件HelloWorld.java,加入自己写的代码,再重复一次上述的流程即可。

这个JVM是如何实现的?

文档地址 https://anilople.github.io/javajvm/

我的开发环境

Windows 10 1903

IntelliJ IDEA

Apache Maven 3.6.1

java version "1.8.0_231"

引用

java specification

自己动手写Java虚拟机

Версии библиотеки

Версия
1.1