Skip to content

codings-dan/javajvm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

284 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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虚拟机

About

A toy JVM written in Java

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%