English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

온라인 도구

각각의 루프

Java 배열

Java 객체 지향(I)

Java 객체 지향(II)

Java 예외 처리

resources

Java 목록(List)

Java Queue(큐)

Java Map 셋

Java Set 셋/O)

Java I/O 스트림

Java Reader

Java 8 Writer

Java 8 새로운 기능

Java 다른 주제

Nashorn은 하나의 javascript 엔진입니다. 15 Nashorn JavaScript Engine은 Java

이는 Java에서 이미 사용할 수 없습니다. 11 로 표시되었습니다:

@deprecated (forRemoval = true)

에서부터 1.8 부터, Nashorn이 Rhino(JDK 1.6, JDK1.7)가 Java의 내장 JavaScript 엔진이 됩니다. Nashorn은 ECMAScript를 완전히 지원합니다 5.1 규격 및 일부 확장을 사용합니다. 그것은 JSR 292 의 새로운 언어 기능을 포함한 JDK 7 에 도입된 invokedynamic를 통해 JavaScript를 Java 바이트 코드로 컴파일합니다.

이전의 Rhino 구현에 비해, 이는 2 까지  10배의 성능 향상을 가져옵니다.

jjs

jjs는 Nashorn 엔진을 기반으로 한 명령 줄 도구입니다. 몇 가지 JavaScript 소스 코드를 인자로 받아 이를 실행합니다.

예를 들어, 다음과 같은 내용을 가진 sample.js 파일을 생성했습니다:

print('Hello World!');

컨솔을 엽니다. 다음 명령어를 입력하세요:

$ jjs sample.js

위 프로그램의 출력 결과는 다음과 같습니다:

Hello World!

jjs 인터랙티브 프로그래밍

컨솔을 엽니다. 다음 명령어를 입력하세요:

$ jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

파라미터 전달

컨솔을 엽니다. 다음 명령어를 입력하세요:

$ jjs -- a b c
jjs> print('알파벳: ') +arguments.join(", "))
알파벳: a, b, c
jjs>

Java에서 JavaScript 호출

ScriptEngineManager를 사용하여, JavaScript 코드가 Java에서 실행될 수 있습니다. 다음은 예제입니다:

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
 
public class Java8Tester {
   public static void main(String args[]){
   
      ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
      ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
        
      String name = "w3codebox";
      Integer result = null;
      
      try {
         nashorn.eval("print('" + name + ")");
         result = (Integer) nashorn.eval("10 + 2");
         
      }catch(ScriptException e){
         System.out.println("스크립트 실행 오류: "+ e.getMessage());
      }
      
      System.out.println(result.toString());
   }
}

위 스크립트 실행 후, 출력 결과는 다음과 같습니다:

$ javac Java8Tester.java 
$ java Java8Tester
w3codebox
12

JavaScript에서 Java 호출

다음 예제는 JavaScript에서 Java 클래스를 참조하는 방법을 보여줍니다:

var BigDecimal = Java.type('java.math.BigDecimal');
function calculate(amount, percentage) {
   var result = new BigDecimal(amount).multiply(
   new BigDecimal(percentage)).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
   
   return result.toPlainString();
}
var result = calculate(568000000000000000023,13.9);
print(result);

위의 스크립트를 jjs 명령으로 실행하여 출력 결과는 다음과 같습니다:

$ jjs sample.js
78952000000000002017.94

Java 8 새로운 기능