Java 8 এ Java-তে JavaScript কোড চালানোর জন্য Nashorn ইঞ্জিন যুক্ত করা হয়েছে। Nashorn হল একটি JavaScript ইঞ্জিন যা Java Virtual Machine (JVM)-এ রান করতে পারে এবং এটি Java-কে JavaScript কোড রান করার সুবিধা প্রদান করে। এর মাধ্যমে আপনি Java থেকে JavaScript কোড ইন্টারপ্রেট এবং এক্সিকিউট করতে পারবেন। Nashorn ECMAScript 5.1 অনুসারে JavaScript কোড সাপোর্ট করে।
এখানে Nashorn ব্যবহার করে JavaScript কোড চালানোর প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হয়েছে।
১. Nashorn ইঞ্জিন সেটআপ
Java 8 বা পরবর্তী সংস্করণে, Nashorn ইঞ্জিন ডিফল্টভাবে Java-র সাথে অন্তর্ভুক্ত থাকে। আপনাকে আলাদাভাবে এটি ইনস্টল করতে হবে না।
২. Java থেকে JavaScript চালানো
Java থেকে JavaScript কোড চালানোর জন্য, ScriptEngine API ব্যবহার করা হয় যা Nashorn ইঞ্জিনের মাধ্যমে JavaScript কোড রান করতে সক্ষম।
উদাহরণ ১: সহজ JavaScript কোড চালানো
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class NashornExample {
public static void main(String[] args) {
// ScriptEngineManager তৈরি করুন
ScriptEngineManager manager = new ScriptEngineManager();
// Nashorn স্ক্রিপ্ট ইঞ্জিন তৈরি করুন
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript কোড চালানো
try {
engine.eval("print('Hello from JavaScript!');");
} catch (ScriptException e) {
e.printStackTrace();
}
}
}এখানে, ScriptEngineManager এর মাধ্যমে Nashorn ইঞ্জিন তৈরি করা হয়েছে এবং eval() মেথডের মাধ্যমে JavaScript কোড চালানো হয়েছে।
Output:
Hello from JavaScript!৩. JavaScript ভ্যারিয়েবল ব্যবহার করা
আপনি Java থেকে JavaScript-এ ভ্যারিয়েবল পাস করতে পারেন এবং JavaScript-এ কাজ করতে পারেন।
উদাহরণ ২: Java ভ্যারিয়েবল JavaScript-এ পাস করা
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class NashornExample {
public static void main(String[] args) {
// ScriptEngineManager তৈরি করুন
ScriptEngineManager manager = new ScriptEngineManager();
// Nashorn স্ক্রিপ্ট ইঞ্জিন তৈরি করুন
ScriptEngine engine = manager.getEngineByName("nashorn");
// Java ভ্যারিয়েবল
String name = "John";
// JavaScript কোডে Java ভ্যারিয়েবল পাস করা
try {
engine.put("name", name); // Java ভ্যারিয়েবল পাস করা
engine.eval("print('Hello, ' + name + '!');"); // JavaScript কোড
} catch (ScriptException e) {
e.printStackTrace();
}
}
}এখানে, engine.put("name", name) দিয়ে Java ভ্যারিয়েবল JavaScript কোডে পাস করা হয়েছে। JavaScript কোডে name ভ্যারিয়েবলটি ব্যবহার করা হয়েছে।
Output:
Hello, John!৪. JavaScript ফাংশন কল করা
JavaScript ফাংশন Java থেকে কল করতে পারেন এবং তার রিটার্ন ভ্যালু ব্যবহার করতে পারেন।
উদাহরণ ৩: JavaScript ফাংশন কল করা
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.Invocable;
public class NashornExample {
public static void main(String[] args) {
// ScriptEngineManager তৈরি করুন
ScriptEngineManager manager = new ScriptEngineManager();
// Nashorn স্ক্রিপ্ট ইঞ্জিন তৈরি করুন
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript ফাংশন তৈরি
String script = "function greet(name) { return 'Hello, ' + name; }";
try {
// JavaScript কোড এক্সিকিউট করা
engine.eval(script);
// Invocable ইন্টারফেস ব্যবহার করে ফাংশন কল করা
Invocable invocable = (Invocable) engine;
String result = (String) invocable.invokeFunction("greet", "Alice");
System.out.println(result); // Output: Hello, Alice
} catch (ScriptException | NoSuchMethodException e) {
e.printStackTrace();
}
}
}এখানে, JavaScript-এ একটি greet ফাংশন তৈরি করা হয়েছে এবং Java থেকে সেই ফাংশন কল করা হয়েছে। Invocable ইন্টারফেস ব্যবহার করে invokeFunction মেথডের মাধ্যমে JavaScript ফাংশনটি কল করা হয়েছে এবং তার রিটার্ন ভ্যালু নেয়া হয়েছে।
Output:
Hello, Alice৫. Nashorn এবং Java Object Interaction
Nashorn ইঞ্জিনের মাধ্যমে Java Object গুলিও JavaScript কোডে ব্যবহার করা যেতে পারে। এটি Java-র অবজেক্টকে JavaScript কোডে পাস করতে সক্ষম করে।
উদাহরণ ৪: Java Object পাস করা
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class NashornExample {
public static void main(String[] args) {
// ScriptEngineManager তৈরি করুন
ScriptEngineManager manager = new ScriptEngineManager();
// Nashorn স্ক্রিপ্ট ইঞ্জিন তৈরি করুন
ScriptEngine engine = manager.getEngineByName("nashorn");
// Java Object তৈরি
Person person = new Person("Alice", 25);
// Java Object পাস করা
engine.put("person", person);
// JavaScript কোডে Java Object ব্যবহার করা
String script = "print('Name: ' + person.getName() + ', Age: ' + person.getAge());";
try {
engine.eval(script);
} catch (ScriptException e) {
e.printStackTrace();
}
}
static class Person {
private String name;
private int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}এখানে, Person নামক একটি Java ক্লাস তৈরি করা হয়েছে এবং তার অবজেক্ট engine.put("person", person) এর মাধ্যমে JavaScript কোডে পাস করা হয়েছে।
Output:
Name: Alice, Age: 25সারসংক্ষেপ
- Nashorn হল Java 8-এ অন্তর্ভুক্ত একটি JavaScript ইঞ্জিন, যা Java-এ JavaScript কোড এক্সিকিউট করার সুযোগ দেয়।
- ScriptEngine API ব্যবহার করে Java থেকে JavaScript কোড চালানো সম্ভব।
- JavaScript কোডে Java Objects পাস করা, JavaScript ফাংশন কল করা, এবং JavaScript কোডে Java ভ্যারিয়েবল ব্যবহার করা সম্ভব।
Nashorn ব্যবহারের মাধ্যমে Java এবং JavaScript এর মধ্যে সহজে ইন্টিগ্রেশন করা যায়, যা বিভিন্ন ধরনের কোড এক্সিকিউশনের ক্ষেত্রে কার্যকরী হতে পারে।
Read more