Avatar.js和Project Avatar

在Java 8和Nashorn的上下文中,我看到有两个项目经常被提及。

Avatar.js和Project Avatar

这些项目的关系是什么?

Avatar.js的文档很少。 据我所知,它提供了在JVM上执行节点应用程序的可能性。

项目头像似乎建立在Avatar.js上。 但是,范围似乎是为Java EE 7提供替代Web框架。是否也可以使用Project Avatar执行节点程序(例如grunt)?

更新: “阿凡达”项目于2015-02-12 正式停止 。

Avatar.js是非正式名称为“node.jar”的开源版本(请参阅avatar-js邮件列表中的这篇文章 )。 换句话说,它是与Nashorn一起运行的NodeJS兼容API。 Project Avatar似乎是Oracle对NodeJS API的回应,提供了一个替代平台,该平台还通过Avatar.js提供与NodeJS API和生态系统的兼容性。

因此,Project Avatar不是建立在Avatar.js上,而是“Avatar.js是Project Avatar的一个组件.Nashorn是用于运行这两者的JavaScript引擎。” (再次,从这篇文章 )。

Avatar.js主页目前有一个已知运行的模块列表,包括“grunt”。 看起来Project Avatar目前包含Avatar.js的版本为“avatar-js.jar”,如当前最新提交中所见,尽管已有4个月之久。 所以我认为答案是肯定的,Project Avatar的当前版本将允许您运行与节点兼容的模块。

正如您所指出的那样,这两项举措都缺乏文档,而且还处于起步阶段。 时间和社区参与将显示它们最适合的位置。

确实,Avatar.js包含在Project Avatar中。 通过查看Project Avatar的Maven POM文件,我发现通过java.net Maven存储库可以获得Avatar.js的二进制分发版。

根据这一发现,我写了一篇博客文章,介绍如何使用Avatar.js运行简单的Node.js应用程序: 使用Nashorn和Java 8在JVM上运行Node.js应用程序

此处重复OSX的步骤:

  1. 从java.net Maven Repo下载avatar-js.jar。 当前版本在这里: https ://maven.java.net/content/repositories/public/com/oracle/avatar-js/0.10.25-SNAPSHOT/示例文件:avatar-js-0.10.25-20140313.063039-43。jar
  2. 从java.net Maven Repo下载本机库avatar-js.dylib。 当前版本在这里: https : //maven.java.net/content/repositories/public/com/oracle/libavatar-js-macosx-x64/0.10.25-SNAPSHOT/
    示例文件:libavatar-js-macosx-x64-0.10.25-20140312.062209-35.dylib
    对于Linux,您可以从../libavatar-js-linux-x64/0.10.25-SNAPSHOT/下载相应的.so文件。
    对于Windows,您可以从../libavatar-js-win-x64/0.10.25-SNAPSHOT/下载相应的.dll文件。
  3. 将本机库重命名为avatar-js.dylib并将jar重命名为avatar-js.jar并将它们放在名为dist的目录中。
  4. 在名为app.js的文件中创建一个简单的Node.js应用程序。
  5. 运行命令: java -Djava.library.path=dist -jar dist/avatar-js.jar app.js

项目头像确实在Avatar.js之上 ; 代码使用Maven集成到我们的构建中。 (你找到的jar子,约翰,因为我们不再使用它而老了 – 我只是把它弄了,谢谢)。

是的,我们知道我们的文档需要更多的工作。 目前,我们专注于充实服务器端JavaScript框架。 此服务层提供了一个运行时调整,可轻松创建REST,WebSocket和Server-Sent Event端点。

Interesting Posts