YVM 已支持语言特性构建和运行关于JDK运行效果开发文档License 介绍
中文
| English
YVM是用C++写的一个Java虚拟机,现在支持Java大部分功能,以及一个基于”标记清除算法”的并发垃圾回收器. 不过还有很多bug等待修复。
感兴趣的朋友pull request/fork/star吧!
已支持语言特性
高级特性逐步支持中,可以开Issue提议或者直接PR
-
Java基本算术运算,流程控制语句,面向对象。
构建和运行
预置MSVC 2017工程文件,同时支持CMakeLists
-
配置 编辑src/Option.h,如果是Windows则
define TARGET_WIN32
如果是Linux则
#define TARGET_LINUX
-
编译 如果使用MSVC,直接打开src/yvm.sln即可 如果使用CMakeLists
$ cd yvm
$ cmake .
$ make -j4 -
运行
–runtime为在YVM上运行的Java程序所必须的运行时,多个值用”;”分隔
后面指定运行程序的全修饰名,如ydk.test.QuickSort
./yvm –runtime=C:\Users\Cthulhu\Desktop\yvm\javalib ydk.test.QuickSort
关于JDK
部分JDK类是JVM运行攸关的,但由于JDK比较复杂不便于初期开发,所以这里用重写过的JDK代替,源码参见javalib_src目录,编译后*.class文件位于javalib
目前重写过的JDK类有:
-
java.lang.String
-
java.lang.StringBuilder
-
java.lang.Throwable
-
java.lang.Math(::random())
-
java.lang.Runnable
-
java.lang.Thread
运行效果
开发文档
Wiki中有很多详细的开发文档,如果想探索关于YVM的更多内容,请移步浏览:-)
License
Code licensed under the MIT License.
YVM 已支持语言特性构建和运行关于JDK运行效果开发文档License 官网
https://github.com/racaljk/yvm
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。