산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 8 - Nashorn 자바스크립트

Java 8에서는 기존 Rhino를 대체하기 위해 훨씬 개선된 자바스크립트 엔진인 Nashorn이 도입되었습니다. Nashorn은 메모리에 있는 코드를 직접 컴파일하고 바이트코드를 JVM에 전달하므로 2~10배 더 나은 성능을 제공합니다. Nashorn은 성능을 개선하기 위해 Java 7에 도입된 동적 호출 기능을 사용합니다.

jjs

Nashorn 엔진의 경우 JAVA 8에는 새로운 명령줄 도구인 jjs,가 도입되었습니다. 콘솔에서 자바스크립트 코드를 실행합니다.

js 파일 해석

sample.js 파일 생성 및 저장 c:\> JAVA 폴더에 있습니다.

샘플.js

print('Hello World!');

콘솔을 열고 다음 명령을 사용하십시오.

C:\JAVA>jjs sample.js

다음과 같은 출력이 생성됩니다.

Hello World!

대화형 모드의 jjs

콘솔을 열고 다음 명령을 사용하십시오.

C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

인수 전달

콘솔을 열고 다음 명령을 사용하십시오.

C:\JAVA> jjs -- a b c
jjs> print('letters: ' +arguments.join(", "))
letters: a, b, c
jjs>

자바에서 자바스크립트 호출

ScriptEngineManager를 사용하면 Java에서 JavaScript 코드를 호출하고 해석할 수 있습니다.

예시

예를 들어 C:\> JAVA.

에서 원하는 편집기를 사용하여 다음 Java 프로그램을 만듭니다.

Java8Tester.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 = "Mahesh";
      Integer result = null;
      
      try {
         nashorn.eval("print('" + name + "')");
         result = (Integer) nashorn.eval("10 + 2");
         
      } catch(ScriptException e) {
         System.out.println("Error executing script: "+ e.getMessage());
      }
      System.out.println(result.toString());
   }
}

결과 확인

javac를 사용하여 클래스 컴파일 다음과 같이 컴파일러 -

C:\JAVA>javac Java8Tester.java

이제 다음과 같이 Java8Tester를 실행하십시오 -

C:\JAVA>java Java8Tester

다음 결과를 생성해야 합니다 -

Mahesh
12

자바스크립트에서 자바 호출

다음 예제에서는 자바 스크립트에서 자바 클래스를 가져오고 사용하는 방법을 설명합니다.

sample.js 생성 및 저장 c:\> JAVA 폴더에 있습니다.

샘플.js

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);

콘솔을 열고 다음 명령을 사용하십시오.

C:\JAVA>jjs sample.js

다음 출력을 생성해야 합니다 -

78952000000000000003.20

java

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 벡터