日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nashorn 性能_Nashorn简介

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nashorn 性能_Nashorn简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nashorn 性能

引入了Java 8和名為“ Nashorn”的新JavaScript引擎。 Nashorn基于Da Vinci Machine,該項目旨在為JVM添加動態語言支持。 Nashorn是使混合軟件比以前更輕松的一個很好的里程碑。 該引擎的出色功能使您能夠在Java(任何其他編譯語言)代碼和javascript之間進行全雙工通信。

使用Nashorn的最簡單方法是JDK 8或OpenJDK 8中捆綁的命令行工具,您可以在“ / bin”中找到它。 通過執行jjs,您將面對jjs提示符,提示您可以交互使用Nashorn,也可以將js文件作為參數傳遞給jjs。 您可以在下面找到使用jjs的基本示例:

考慮下面的simple.js文件:

var name="Nashorn"; print(name);

現在,通過調用:jjs simple.js,將在屏幕上顯示“ Nashorn”文本。

我認為jjs足以用于介紹,如果您需要更多信息,可以鍵入jjs -help。

您也可以在Java代碼中使用Nashorn腳本引擎。 考慮下面的Program.java文件:

public class Program {public static void main(String... args) throws ScriptException {ScriptEngineManager factory = new ScriptEngineManager();ScriptEngine nashornEngine = factory.getEngineByName("nashorn");nashornEngine.eval("print('hello world');");} }

使用此簡單的代碼,您的屏幕上將會顯示一個非常漂亮的問候世界。 您也可以將js文件評估為腳本引擎,ScriptEngine接口的eval方法具有Reader抽象類類型的重載。 因此,您可以簡單地傳遞任何作為Reader類實例的對象。 考慮以下代碼:

script1.js內容:

var version = 1;function hello(name) {return "hello " + name; }

Program.java內容:

public class Program {public static void main(String... args) throws ScriptException, NoSuchMethodException {ScriptEngineManager factory = new ScriptEngineManager();ScriptEngine nashornEngine = factory.getEngineByName("nashorn");nashornEngine.eval(new InputStreamReader(Program.class.getResourceAsStream("script1.js")));System.out.println(nashornEngine.get("version"));Invocable invocable = (Invocable) nashornEngine;Object result = invocable.invokeFunction("hello", "soroosh");System.out.println(result); } }

ScriptEngine接口有一個get方法,如您在示例中所注意到的,您可以調用它來檢索ScriptEngine中定義的任何變量或任何狀態。 在上面的示例中,“ version”是在simple.js文件中聲明的變量。

每個腳本引擎都有其自己的ScriptEngine類實現,并且腳本引擎可以實現一些可選接口以擴展其功能。 如果您檢查NashornSriptEngine的源代碼,則類簽名為:

public final class NashornScriptEngine extends javax.script.AbstractScriptEngine implements javax.script.Compilable, javax.script.Invocable

因此,Nashorn腳本引擎也使您能夠使用這兩個界面。 在上面的示例中,用于調用在腳本引擎中聲明的函數的示例使用了Invocable接口。

注意: ScriptEngine是有狀態的,因此,如果您在腳本引擎上調用某些函數或評估某些代碼,則對象和變量的狀態可能會影響其結果。

結論:

在這篇文章中,我試圖以一種非常基本和實用的方式介紹Nashorn。在以后的文章中,我將進一步展示Java + Nashorn的互操作性及其在現實世界中的用法。

翻譯自: https://www.javacodegeeks.com/2014/04/introduction-to-nashorn.html

nashorn 性能

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的nashorn 性能_Nashorn简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。