一尘不染

如何在服务器端Java中使用JavaScript图表库(如D3.js或Raphaël)

java

我想将D3.js(或者也许是Raphaël)用于XSL-
FO和Java生成的后端报告。使用这些JavaScript库的原因有几个:

  1. 它们呈现的图表比我从Java库(IMO)中看到的图表还要漂亮
  2. 它们支持SVG和PNG(据我所知),这在XSL-FO中是必需的
  3. 它们还将在应用程序的前端部分使用。在Java后端也重用它们可以减少开发人员的学习曲线和代码库占用空间。

因此,使用任何类似的Java库都是不太理想的选择。

现在,将D3.js与Java结合使用的最直接的方法是使用诸如selenium之类的笨重的工具来渲染虚拟HTML页面并在其中执行JavaScript。但这对我来说似乎太过分了。

有没有更简单的方法可以在同一Java进程中直接执行这种JavaScript?我问是因为D3.js旨在在HTML文档的上下文中工作。我不确定Rhino或其他Java脚本实现是否可以做到这一点


阅读 188

收藏
2020-12-03

共1个答案

一尘不染

您可以使用phantom.js。这是一个基于webkit的无头浏览器,可让您无需浏览器即可运行JavaScript。

使用此方法,您只需执行一个系统调用即可运行phantom.js,并为其添加JavaScript代码和输入。然后它将相应地创建您的输出。请参阅此示例

2020-12-03