阅读更多

60顶
2踩

编程语言

原创新闻 BicaVM:基于JavaScript的JVM

2011-11-22 12:49 by 资深编辑 luiang1018 评论(71) 有23573人浏览
用JavaScript编写一个Java虚拟机,这个想法怎么样?你会不会认为很疯狂呢?

由于效能问题,到目前为止,用JavaScript编写JVM似乎是非常困难的。可是你要知道,JavaScript引擎速度已经大大提升了。也正因为如此,一位超级大牛,Artur Ventura,决定用JavaScript来编写一个标准的Java虚拟机,而且他已经快完成了。


Artur在他的博客中很好地解释了这一动机。他认为Web浏览器应该有一个虚拟机,使其能够运行所有的语言,而不是只能编译JavaScript。Artur同时指出,这样做还有一个好处,即利用JVM方式,你可以得到一个全自动的沙盒环境,并且你可以简单地将JVM发送到服务器,即实现浏览器的独立持久性。

在经历了六个月的奋战后,Artur用JavaScript编写的Java虚拟机——BicaVM终于出炉,它可以运行60%的Byte Code。当然,它还没有经过优化,但是已可运行在iPad和iPhone上,同时它还支持一个DOM的JNI接口。

BicaVM虚拟机的代码可以通过GitHub获得。了解更多信息可以访问Artur Ventura的博客

Via  i-programmer
  • 大小: 5.1 KB
60
2
评论 共 71 条 请登录后发表评论
71 楼 wv1124 2011-12-01 11:52
NodeJs也是类似的在服务器端运行的js,因为它比其它解释型的语言更高效
70 楼 mingliang_luo 2011-11-27 14:18
这也没什么牛的,类似google gwt的实现,你也可以参数gwt写出一个jvm虚拟机来,呵呵
69 楼 yawei 2011-11-25 23:23
其实这哥们完全就是因为不爽ios不支持java而已。
68 楼 jiangyingji 2011-11-25 22:39
zwllxs 写道
弱弱的问下,java通过native调用,能操作本地资源,这个,javascript能做到??用js开发的虚拟机,运行在上面的程序,能操作硬件,文件,获取本机信息么?
简单的说,运行java要装载class,js怎么装载呢?
求真相




class文件的载入,看下源码吧,有的。

如果让他随便调用本地方法,那就不安全了。。。
67 楼 黑白两相望 2011-11-25 14:18
super_monkey 写道
大家冷静 大牛发话了 快看


http://www.cnblogs.com/cping1982/archive/2011/11/23/BicaVM.html

  赫然发现 自己被帖子的作者 批评了 ...
66 楼 super_monkey 2011-11-25 13:05
大家冷静 大牛发话了 快看


http://www.cnblogs.com/cping1982/archive/2011/11/23/BicaVM.html
65 楼 yutianzzu 2011-11-25 12:26
太牛b了,从来没想过会这样!!!!
64 楼 SeaAndHill 2011-11-25 09:31
一看标题,就是风马女不相及的事情,垃圾
63 楼 mfkvfn 2011-11-25 09:18
feitianmayi1986 写道
这篇文章是啥意思,用JS写个跑JAVA程序的JVM,还是写一个跑JS的VM?


客户端直接编译运行Java代码。比如
<script language="java">
java代码
</scipt>
62 楼 沙舟狼客 2011-11-25 08:51
不是吧js写个jvm,能用吗?
61 楼 feitianmayi1986 2011-11-25 08:34
这篇文章是啥意思,用JS写个跑JAVA程序的JVM,还是写一个跑JS的VM?
60 楼 ini_always 2011-11-24 22:08
http://blog.csdn.net/cping1982/article/details/7005513
59 楼 wandou 2011-11-24 19:31
可以运行60%的bytecode,那就是不行了。。。
58 楼 gaoyi2009 2011-11-24 18:14
编程内力太深厚了!大师级人物啊!
57 楼 fandayrockworld 2011-11-24 16:43
fandayrockworld 写道
zwllxs 写道
弱弱的问下,java通过native调用,能操作本地资源,这个,javascript能做到??用js开发的虚拟机,运行在上面的程序,能操作硬件,文件,获取本机信息么?
简单的说,运行java要装载class,js怎么装载呢?
求真相

看这篇文章的意思,这里的JVM应该指的是JavascrpitVM,而不是JavaVM吧,而这个JVM的“native调”用,应该就是上面说的“同时它还支持一个DOM的JNI接口”吧。

好吧,我二了,看来不是,同求解···
56 楼 ankuino1 2011-11-24 16:38
你就是我心中的神啊。
55 楼 13号避难所专业外出打酱油人员 2011-11-24 16:19
我的个神啊
54 楼 fandayrockworld 2011-11-24 16:19
zwllxs 写道
弱弱的问下,java通过native调用,能操作本地资源,这个,javascript能做到??用js开发的虚拟机,运行在上面的程序,能操作硬件,文件,获取本机信息么?
简单的说,运行java要装载class,js怎么装载呢?
求真相

看这篇文章的意思,这里的JVM应该指的是JavascrpitVM,而不是JavaVM吧,而这个JVM的“native调”用,应该就是上面说的“同时它还支持一个DOM的JNI接口”吧。
53 楼 lzy5710303 2011-11-24 14:57
震惊了 太牛B了
52 楼 kid1412.c 2011-11-24 13:41
其实用java造就一个JVM- -,很牛B,其实我一直在想,使用JS和COOKIE,在浏览器中创建一个容器,类似于spring的beanfactory,有一个持久对象的功能,

很多时候,很多人使用使用一个页面作为js的context,这样做的确JS的确是一个容器.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • oracle sql语法 not like多条件

    在 Oracle SQL 中,如果要使用 NOT LIKE 并且有多个条件,可以使用 AND 或 OR 连接多个 NOT LIKE 语句。 例如,要查询所有名称不包含 "a" 或 "b" 的员工,可以使用以下语句: SELECT * FROM employees WHERE name NOT LIKE '%a%' OR name NOT LIKE '%b%'; ...

  • asp mysql like,在ASP中使用SQL语句之3:LIKE、NOT LIKE和 BETWEEN

    你已经在上面取出w打头记录的例子中看到了like的用法。like判定词是一个非常有用的符号。不过,在很多情况下用了它可能会带给你太多的数据,所以在用到它之前最好先开动脑筋多想想自己到底想获得什么数据。假设你想取出5位数字的sku号码,而且其开头是1结尾是5,那么你可以用下划符(_)代替%符号:sql = "select * from products where p_sku like 1___5"...

  • SQL Server 的 Like 运算符与通配符

    目录 like 查找包含指定字符串的行 %(百分比)通配符 _(下划线)通配符 [ ](方括号)通配符 [ - ] 可指定范围 ^ 通配符 NOT LIKE 与 like 作用相反 1.like 查找包含指定字符串的行 在SQL Server 中当我们想要查询某些以字段和字母开头或结尾的数据时,可以使用Like来查找数据。一般在使用Like 时,我们得配合通配符来使用它。在下面我们会通过了解 Like 与通配符的使用方法和诸多例子来理解Like 在SQL Server 中的作...

  • SQL Server之常用条件语句1

    SQL Server之常用条件语句1 在常规的操作“增删查改”中存在着许多的条件语法,例如:and 、or、between、in、like、not like等等……,今天就共同探索一下其中的一部分吧! 1.AND:逻辑运算符,结合两边的boolean值,只有两边条件的结果同时为true时,该运算符才会返回true,否则就返回false。【其原理类似于高中数学中的并集】 2.OR:逻辑运算符,结合两边的boolean值,只要有一边条件的结果为true时,该运算符就会返回true,如果两边的结果都为fals

  • SQL Server知识点

    在真实项目环境下,单表查询的情况不多,大部分情况下都是要多张数据表联合起来进行查询,这些多张有关系的表之间通过主外键进行关联起来的查询,就叫关联查询。关联查询与子查询具有相同的功能,可以实现跨表查询。说明:创建一个表格前要先选择对应的数据库,数据库中的数据都保存在数据表中,一般情 况下,同种类型的数据保存在同一张表中,也就是说,一个类型的就保存在一张表里。b.主键的不重复和唯一键不重复的目地是不一样的,主键不重复的目地 是为了区分不同数据行,唯一键不重复的目地就是为了避免数据的重 复。...

  • sql not like 数据遗漏

    在一NULL列,两者LIKE并NOT LIKE反对任何搜索字符串将返回NULL。或者是使用 not exists()

  • 一个sql很多个not like的简化语句

    如: select * from table where `zongbu` not like '%北京%' and `zongbu` not like '%上海%' and `zongbu` not like '%深圳%' and `zongbu` not like '天津' and `zongbu` not like '香港' and `zongbu` not like '沈阳' SELECT

  • 精妙SQL语句集合(转)

    下列语句部分是Mssql语句,不可以在access中使用。 SQL分类:  DDL—数据定义语言(Create,Alter,Drop,DECLARE)  DML—数据操纵语言(Select,Delete,Update,Insert)  DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 Create

  • SQl语句之 BETWEEN 用法

    between de的英语意思是介于两者之间,在sql中的意思是两个值之间的数据范围。这些值可以是数值、文本或者日期。与and 一起使用 例句1:(筛选出一张表中以某个字段两个值之间的数据范围) select * from tab1    where name      between value1 and value2 (筛选出的条件中包括value1,但是不包括vaule2,也就是说并不是

  • sql中的like统配符

    google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//<script type="text/javascript"

  • X++中sql文使用like和not like的方法

    X++的sql文不支持like关键字进行模糊查询。 所以可以用下面两种方法来实现。 1.  strfmt方法 qbr.value(strfmt("%1*", strVar )) qbr.value(strfmt("*%1*", strVar)) 如果有多个模糊查询的话,当然可以增加多个变量。 如果想进行not like 查询的话,需要用!%1 qbr.value(strFmt("

  • SQL通用防注入系统asp版 插一句话漏洞利用

    今晚群里朋友叫看个站,有sql防注入,绕不过,但是有发现记录wrong的文件sqlin.asp 既然做了记录,再查看了下它的记录文件 于是想着构造个asp一句话写进去,前面几种没加密的都失败了,于是写了个加密的. ┼攠數畣整爠煥敵瑳∨≡┩愾 密码 a (加密方式是: ANSI-&gt;Unicode) 提交 and 1= ┼攠數畣整爠煥敵瑳∨≡┩愾 ht...

  • mssql like 优化

    SqlServer中like 的查询一般我们都不推荐,但是当数据库某个字段的值是用分隔符区分的多个链接字符,比如,12,11,23等这样的类型。可能我们需要判断是否包含12. 这个时候我们想到的当然是like 除了like 其实我们可以用charindex函数来判断 like一般都是走全表扫描会很慢。如果用charindex 就是走字段 charindex('12','124578')&...

Global site tag (gtag.js) - Google Analytics