Эта статья в основном изучает связанное содержание программирования Java Nashorn, следующим образом.
Что такое Нашорн
Нашорн, произносится «Насс-хорн», является названием танка в Германии во время Второй мировой войны. Это также новое поколение двигателя JavaScript для Java8 - замены старого и медленного носорога и соблюдение языковых спецификаций Ecmascript -262 версии 5.1. Вы можете захотеть JavaScript работать в веб -браузере и предоставил различные операции DOM на HTML, но Nashorn не поддерживает объекты Browser DOM. Это точка, которая требует внимания.
Мне случайно написать простой пример, когда я изучал Java 8, поэтому я запишу его здесь.
Файл -каталог:
STRINGFUNCTION.JAVA Исходный код:
public class stringfunction { / ** * string intercept * / public String sub (string str, int start, int end) {return str.substring (start, end); } / *** Строка сплайсинга* / public String Append (String ... Strs) {StringBuilder result = new StringBuilder (strs [0]); Stream.of (strs) .skip (1) .foreach (str -> result.append (str)); return result.tostring (); }}STRINGNASHORN.JAVA Исходный код:
открытый класс StringNashorn { / *** Nashorn Script Engine* / private scriptengine nashorn = new ScriptengineManager (). getEngineByname ("nashorn"); / *** Выполнить Script*/ public Object execute (String Script) {scriptContext scriptContext = new SimplescriptContext (); // Определите функцию с именем stringfunction, которая фактически соответствует объекту stringfunction scriptContext.setAttribute ("stringFunction", new StringFunction (), 100); nashorn.setcontext (scriptContext); Объект результат = null; try {result = nashorn.eval (script); } catch (scriptexception e) {e.printstacktrace (); } return Result; }}Nashorntest.java исходный код:
открытый класс nashorntest {public static void main (string [] args) {string substring = "stringfunction.sub (/" abcdefghijk/", 1, 4);"; String append = "stringfunction.append (/" abc/",/" def/");"; StringNashorn nashorn = new StringNashorn (); Объект subresult = nashorn.execute (substring); Object AppendResult = nashorn.execute (append); System.out.println (subresult.toString ()); System.out.println (appendResult.toString ()); }}Запустите основной метод, результат:
BCD
Abcdef
Здесь, если nashorntest.java переписан следующим образом:
открытый класс nashorntest {public static void main (string [] args) {// Использование объектов для получения результатов в скрипте и печати строки substring = "var s1 = stringfunction.sub (/" abcdefghijk/", 1, 4);" + "print (s1);"; String append = "var s2 = stringfunction.append (/" abc/",/" def/");" + "print (s2);"; StringNashorn nashorn = new StringNashorn (); // Здесь выполнить больше не возвращает объект, потому что в скрипте уже есть объекты, получающие результаты выполнения Sub и добавление. nashorn.execute (substring); nashorn.execute (append); }}Тот же результат также будет выходить.
Суммировать
Выше приведенное дело о кодексе Java Programming Nashorn Encament, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!