j-j-jvm:用Java编写的JVM字节码解释器-源码

上传者: 42153801 | 上传时间: 2021-05-18 13:59:34 | 文件大小: 145KB | 文件类型: ZIP
历史 2009年,我在周末有一些空闲时间,决定尝试使用纯Java开发小型JVM解释器,该解释器可在J2ME CLDC 1.0平台中使用,因为该平台不支持ClassLoader,但是加载已编译的类文件非常有用通过网络并执行它们。 “概念验证”的开发历时约三天,即使在诺基亚6100上也能以良好的速度运行。该项目以OSS项目的形式发布在我的主页上(标题为“ M-JVM”),我什至发现了一些兴趣。移动软件开发人员。 2015年,我决定重做我的主页,并从那里删除了旧项目,但是由于它仍然对某人有用,因此我对其进行了重构,并将源代码移至GitHub,标题为JJ-JVM project。 我对该项目进行了一些改进,增加了对内部类,双精度和长值的支持,增加了数十种测试。 该库正在测试与Android API 2.0r1 +的兼容性。 JVM解释器不包含任何“ Poka-yoke”(防错)机制和字节码验证

文件下载

资源详情

[{"title":"( 67 个子文件 145KB ) j-j-jvm:用Java编写的JVM字节码解释器-源码","children":[{"title":"j-j-jvm-master","children":[{"title":"pom.xml <span style='color:#111;'> 1.53KB </span>","children":null,"spread":false},{"title":"uistubgen","children":[{"title":"nb-configuration.xml <span style='color:#111;'> 1015B </span>","children":null,"spread":false},{"title":"pom.xml <span style='color:#111;'> 2.28KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"main","children":[{"title":"resources","children":[{"title":"images","children":[{"title":"splash.jpg <span style='color:#111;'> 32.14KB </span>","children":null,"spread":false},{"title":"icon_packageitem.gif <span style='color:#111;'> 103B </span>","children":null,"spread":false},{"title":"icon_storage.gif <span style='color:#111;'> 96B </span>","children":null,"spread":false},{"title":"appico.png <span style='color:#111;'> 2.77KB </span>","children":null,"spread":false},{"title":"icon_remove.gif <span style='color:#111;'> 76B </span>","children":null,"spread":false},{"title":"icon_add.gif <span style='color:#111;'> 85B </span>","children":null,"spread":false},{"title":"icon_classitem.gif <span style='color:#111;'> 103B </span>","children":null,"spread":false},{"title":"icon_removeall.gif <span style='color:#111;'> 90B </span>","children":null,"spread":false}],"spread":true},{"title":"template","children":[{"title":"template.txt <span style='color:#111;'> 4.00KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"igormaznitsa","children":[{"title":"jjjvm","children":[{"title":"stubgen","children":[{"title":"jjjvmwrapper","children":[{"title":"TRender.java <span style='color:#111;'> 2.89KB </span>","children":null,"spread":false},{"title":"HelpDialog.java <span style='color:#111;'> 4.71KB </span>","children":null,"spread":false},{"title":"MainForm.java <span style='color:#111;'> 17.35KB </span>","children":null,"spread":false},{"title":"GenerateStubDialog.java <span style='color:#111;'> 14.81KB </span>","children":null,"spread":false},{"title":"main.java <span style='color:#111;'> 1.20KB </span>","children":null,"spread":false},{"title":"AboutDialog.form <span style='color:#111;'> 3.99KB </span>","children":null,"spread":false},{"title":"model","children":[{"title":"StorageItem.java <span style='color:#111;'> 823B </span>","children":null,"spread":false},{"title":"Storage.java <span style='color:#111;'> 8.26KB </span>","children":null,"spread":false},{"title":"PackageItem.java <span style='color:#111;'> 3.14KB </span>","children":null,"spread":false},{"title":"ClassItem.java <span style='color:#111;'> 2.04KB </span>","children":null,"spread":false}],"spread":false},{"title":"GenerateStubDialog.form <span style='color:#111;'> 3.08KB </span>","children":null,"spread":false},{"title":"HelpDialog.form <span style='color:#111;'> 4.69KB </span>","children":null,"spread":false},{"title":"MainForm.form <span style='color:#111;'> 12.78KB </span>","children":null,"spread":false},{"title":"AboutDialog.java <span style='color:#111;'> 4.03KB </span>","children":null,"spread":false},{"title":"ClassItemProperties.form <span style='color:#111;'> 20.23KB </span>","children":null,"spread":false},{"title":"ClassItemProperties.java <span style='color:#111;'> 15.84KB </span>","children":null,"spread":false}],"spread":false},{"title":"utils","children":[{"title":"SplashDialog.java <span style='color:#111;'> 2.33KB </span>","children":null,"spread":false},{"title":"Utils.java <span style='color:#111;'> 7.08KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 11.09KB </span>","children":null,"spread":false},{"title":"interpreter","children":[{"title":"pom.xml <span style='color:#111;'> 2.82KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"igormaznitsa","children":[{"title":"jjjvm","children":[{"title":"testclasses","children":[{"title":"TestInvoke.java <span style='color:#111;'> 777B </span>","children":null,"spread":false},{"title":"TestObject.java <span style='color:#111;'> 125B </span>","children":null,"spread":false},{"title":"TestThrow.java <span style='color:#111;'> 588B </span>","children":null,"spread":false},{"title":"TestSynchronization.java <span style='color:#111;'> 929B </span>","children":null,"spread":false},{"title":"TestTableswitch.java <span style='color:#111;'> 821B </span>","children":null,"spread":false},{"title":"TestEnum.java <span style='color:#111;'> 400B </span>","children":null,"spread":false},{"title":"TestClassInheritance.java <span style='color:#111;'> 703B </span>","children":null,"spread":false},{"title":"TestVector.java <span style='color:#111;'> 367B </span>","children":null,"spread":false},{"title":"TestIterable.java <span style='color:#111;'> 231B </span>","children":null,"spread":false},{"title":"TestIssue.java <span style='color:#111;'> 930B </span>","children":null,"spread":false},{"title":"TestInnerClasses.java <span style='color:#111;'> 874B </span>","children":null,"spread":false},{"title":"TestEnumeration.java <span style='color:#111;'> 260B </span>","children":null,"spread":false}],"spread":false},{"title":"JJJVMInterpreterTest.java <span style='color:#111;'> 79.66KB </span>","children":null,"spread":false},{"title":"utils","children":[{"title":"Branch.java <span style='color:#111;'> 757B </span>","children":null,"spread":false},{"title":"TestProviderImpl.java <span style='color:#111;'> 2.61KB </span>","children":null,"spread":false},{"title":"TestHelper.java <span style='color:#111;'> 7.22KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"java","children":[{"title":"com","children":[{"title":"igormaznitsa","children":[{"title":"jjjvm","children":[{"title":"model","children":[{"title":"JJJVMField.java <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false},{"title":"JJJVMConstants.java <span style='color:#111;'> 2.59KB </span>","children":null,"spread":false},{"title":"JJJVMInnerClassRecord.java <span style='color:#111;'> 2.51KB </span>","children":null,"spread":false},{"title":"JJJVMObject.java <span style='color:#111;'> 3.77KB </span>","children":null,"spread":false},{"title":"JJJVMMethod.java <span style='color:#111;'> 2.79KB </span>","children":null,"spread":false},{"title":"JJJVMConstantPoolItem.java <span style='color:#111;'> 6.68KB </span>","children":null,"spread":false},{"title":"JJJVMConstantPool.java <span style='color:#111;'> 1.30KB </span>","children":null,"spread":false},{"title":"JJJVMTryCatchRecord.java <span style='color:#111;'> 1.95KB </span>","children":null,"spread":false},{"title":"JJJVMProvider.java <span style='color:#111;'> 9.05KB </span>","children":null,"spread":false},{"title":"JJJVMClass.java <span style='color:#111;'> 1.82KB </span>","children":null,"spread":false}],"spread":true},{"title":"impl","children":[{"title":"JJJVMClassFieldImpl.java <span style='color:#111;'> 5.36KB </span>","children":null,"spread":false},{"title":"JJJVMConstantPoolImpl.java <span style='color:#111;'> 4.02KB </span>","children":null,"spread":false},{"title":"JJJVMImplUtils.java <span style='color:#111;'> 981B </span>","children":null,"spread":false},{"title":"jse","children":[{"title":"JSEProviderImpl.java <span style='color:#111;'> 21.59KB </span>","children":null,"spread":false}],"spread":false},{"title":"JJJVMClassMethodImpl.java <span style='color:#111;'> 6.78KB </span>","children":null,"spread":false},{"title":"JJJVMClassImpl.java <span style='color:#111;'> 19.47KB </span>","children":null,"spread":false}],"spread":false},{"title":"JJJVMInterpreter.java <span style='color:#111;'> 58.86KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'> 1.54KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 3.04KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明