中文 | Eglish
YVM是用C++写的一个Java虚拟机,现在支持Java大部分功能,以及一个基于"标记清除算法"的并发垃圾回收器.不过还有很多bug等待修复。感兴趣的朋友pullrequest/fork/star吧!
已支持语言特性高级特性逐步支持中,可以开Issue提议或者直接PR
Java基本算术运算,流程控制语句,面向对象。
RTTI
字符串拼接(+,+=符号重载)
异常处理(可输出stacktrace)
创建异步线程
Sychroized(支持对象锁)
垃圾回收(标记清除算法)
构建和运行预置MSVC2017工程文件,同时支持CMakeLists
配置 编辑src/Optio.h,如果是Widows则
#defie TARGET_WIN32如果是Liux则
#defie TARGET_LINUX编译 如果使用MSVC,直接打开src/yvm.sl即可如果使用CMakeLists
$ cd yvm$ cmake .$ make -j4运行
# --rutime为在YVM上运行的Java程序所必须的运行时,多个值用";"分隔# 后面指定运行程序的全修饰名,如ydk.test.QuickSort./yvm --rutime=C:\Users\Cthulhu\Desktop\yvm\javalib ydk.test.QuickSort关于JDK部分JDK类是JVM运行攸关的,但由于JDK比较复杂不便于初期开发,所以这里用重写过的JDK代替,源码参见javalib_src目录,编译后*.class文件位于javalib 目前重写过的JDK类有:
java.lag.Strig
java.lag.StrigBuilder
java.lag.Throwable
java.lag.Math(::radom())
java.lag.Ruable
java.lag.Thread
运行效果helloworld
快速排序
异常调用栈轨迹
原生多线程
Sychroized保护下的多线程
垃圾回收
开发文档Wiki中有很多详细的开发文档,如果想探索关于YVM的更多内容,请移步浏览:-)
LiceseCodelicesedudertheMITLicese.




















评论