【问题标题】:Avatar.js on SPARCSPARC 上的 Avatar.js
【发布时间】:2017-10-22 21:19:16
【问题描述】:

Node JS 应用程序在 Linux、windows 和 Solaris 上运行良好。但是 Node JS 不支持 SPARC 系统,因为它不支持 V8 引擎。

我自己发现了一个名为 AVATAR 的外部项目,该项目用于使用 JAVA 8 内置 JavaScript 引擎 - Nashron 在 JVM(Java 虚拟机)中运行 NODE JS 程序。

在他们的官方网站上,他们为我提供了适用于 Linux 的 (.so) 文件,适用于 Windows 的 (.dll) 文件,使用我们编译的程序。通过使用这些文件(.so 和 .dll),我们成功地在 Linux、带有 JAVA 8 的窗口中执行了 Node JS 程序。

我使用相同的 linux (.so) 文件在 SPARC 平台上运行,它会抛出以下错误。

发生错误:

-bash-4.1$ java -Djava.library.path=dist -jar dist/avatar-js.jar HttpServer.js

Exception in thread "main" java.lang.UnsatisfiedLinkError: /export/home/thiru/LinuxAVatar/dist/libavatar-js.so: ld.so.1: java: fatal: /export/home/thiru/LinuxAVatar/dist/libavatar-js.so: wrong ELF data format: ELFDATA2LSB (Possible cause: endianness mismatch)

        at java.lang.ClassLoader$NativeLibrary.load(Native Method)

        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)

        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)

        at java.lang.Runtime.loadLibrary0(Runtime.java:870)

        at java.lang.System.loadLibrary(System.java:1122)

        at com.oracle.libuv.LibUV.<clinit>(LibUV.java:33)

        at com.oracle.avatar.js.Server.<init>(Server.java:166)

        at com.oracle.avatar.js.Server.<init>(Server.java:140)

        at com.oracle.avatar.js.Server.<init>(Server.java:128)

        at com.oracle.avatar.js.Server.main(Server.java:122)

我已经在 NODE JS 中附加了基本的 HTTP 服务器程序,我曾经使用 avatar 在 JVM 中运行它。

您能否为以下几点提供一些可行性:

1.在SPARC系统上运行NODE JS,

2.SPARC 的 .so 文件是否有任何构建,

3. 我应该在 SPARC 中使用任何其他 Java 脚本引擎而不是 Nashron(例如:Spider Monkey)。

官网链接:https://avatar-js.java.net/

运行头像的过程:http://blog.jonasbandi.net/2014/03/running-nodejs-applications-on-jvm-with.html

Oracle Solaris OS 版本:Oracle Solaris 11.3 SPARC

JAVA 版本: java版本“1.8.0_60” Java(TM) SE 运行时环境 (build 1.8.0_60-b27) Java Hotspot(TM) 64 位服务器 VM(内部版本 25.60-b23,混合模式)

提前致谢。

var http = require('http');

var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello World\n");
});

server.listen(8000);
console.log("Server running at http://127.0.0.1:8585/");

【问题讨论】:

    标签: oracle jvm nashorn sparc avatarjs


    【解决方案1】:

    来自 Oracle 的 Project Avatar 已死。
    官方称它为“开发暂停”,但是......你知道的!
    另请参阅我的博文:http://www.n-k.de/2015/02/current-status-of-oracles-project-avatar.html
    上面提到的替代“Nodyn”也死了。

    因此,您必须寻找另一个选项来在您想要的平台上运行 node.js。

    【讨论】:

    • 感谢达斯尼科的回复。使用替代 Javascript 引擎而不是 Nashorn 是否明智?它可以与 NODE JS 和 SPARC 一起使用吗?
    • 这取决于你想要达到什么。如果你只想运行 Node.js 代码,你应该看看如何在 Sparc 上运行 Node.js(我对 Sparc 平台没有任何经验)。如果你想结合 Java 和 JavaScript,Nashorn 可能是一个可能的解决方案,但你可能不得不放弃节点 API。
    • 我找到了这个 GraalVM - JVM 的新 JIT 编译器和多语言运行时:oracle.com/technetwork/oracle-labs/program-languages/overview/…。它在 SPARC 系统上工作的 NodeJS。 :-)
    猜你喜欢
    • 2014-04-12
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    相关资源
    最近更新 更多