如何使用Java获取位于Web服务器上的js文件,然后在js文件中执行该函数并获取结果并在Java中使用该结果。
你们能给我一些代码片段吗?十分感谢。
最佳答案
此过程分为三个步骤:
第一步非常简单,Java中有很多HTTP库都可以做到这一点-您实际上想模仿wget或curl之类的简单功能。下一步的确切方式会有所不同,具体取决于下一步所需的JS文件格式,但是获取字节流的过程很简单。
第二步将需要在Javascript引擎中执行JS。 Java本身无法解释Javascript,因此您需要获得一个引擎才能在其中运行-Rhino是常见的选择。由于您需要在Java外部运行此程序,因此您可能必须使用ProcessBuilder产生一个在Rhino中执行的进程。此外,根据Javascript的格式,您可能需要创建自己的“包装” JavaScript,其功能类似于Java中的主类并调用有问题的方法。
最后,您需要得到结果-显然您无法从Java程序直接访问JavaScript对象。最简单的方法是让JS程序将结果打印到标准输出(根据对象的复杂程度,可能序列化为JSON之类的东西),由于启动方式,该结果直接流到Java应用程序中犀牛的过程。如果有的话,这可能是您的JS包装器脚本的另一项工作。否则,如果JS函数具有明显的副作用(创建文件/修改数据库),则可以直接从Java查询这些副作用。
任务完成。
我希望您意识到这个问题过于模糊,无法获得完整的答案。要求公众设计整个系统的意义超出了获得有用,可操作的响应的范围。
关于java - 如何使用Java获取js文件并执行它,然后获取结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2066096/