Java 8 এ Nashorn JavaScript ইঞ্জিন যোগ করা হয়েছিল, যা ScriptEngine API এর মাধ্যমে Java থেকে JavaScript কোড চালানোর সুবিধা প্রদান করে। Nashorn JavaScript ইঞ্জিন Java-এ একটি দ্রুত এবং কার্যকরী JavaScript ইন্টারপ্রেটার হিসেবে কাজ করে, যা javax.script প্যাকেজের অংশ। Nashorn-কে ব্যবহার করে Java কোডে JavaScript কোড ইন্টিগ্রেট করা যেতে পারে, এবং JavaScript এর ফাংশনালিটি Java কোডের মধ্যে ব্যবহার করা সম্ভব।
১. Nashorn ইঞ্জিন এবং ScriptEngine API
ScriptEngine হলো Java SE এর অংশ, যা স্ক্রিপ্টিং ভাষার কোড (যেমন JavaScript, Python, Ruby) Java অ্যাপ্লিকেশনের মধ্যে চালানোর জন্য ব্যবহৃত হয়। Nashorn JavaScript ইঞ্জিন Java-তে JavaScript চালানোর জন্য ব্যবহৃত হয়, এবং ScriptEngine এর মাধ্যমে এটি পরিচালনা করা হয়।
২. Nashorn JavaScript ইঞ্জিন ব্যবহার
Java 8-এ Nashorn ইঞ্জিনকে ব্যবহার করতে ScriptEngineManager এবং ScriptEngine ব্যবহার করা হয়। নিচে একটি উদাহরণ দেয়া হল যেখানে Java-তে JavaScript কোড চালানো হয়েছে।
উদাহরণ ১: Java-তে JavaScript কোড চালানো
import javax.script.*;
public class NashornExample {
public static void main(String[] args) {
// ScriptEngineManager তৈরি করা
ScriptEngineManager manager = new ScriptEngineManager();
// Nashorn ইঞ্জিন তৈরি করা
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript কোডের স্ট্রিং
String script = "var greeting = 'Hello, Nashorn!'; greeting;";
try {
// JavaScript কোড চালানো এবং ফলাফল পাওয়া
Object result = engine.eval(script);
// ফলাফল প্রিন্ট করা
System.out.println(result); // Output: Hello, Nashorn!
} catch (ScriptException e) {
e.printStackTrace();
}
}
}এখানে, ScriptEngineManager ব্যবহৃত হয়েছে Nashorn ইঞ্জিন তৈরি করার জন্য এবং eval() মেথডের মাধ্যমে JavaScript কোড চালানো হয়েছে। এর মাধ্যমে, Java কোডে JavaScript কোড চালানো সম্ভব হয়েছে।
৩. JavaScript ফাংশন Java থেকে কল করা
আপনি JavaScript কোডে Java ফাংশন বা ভ্যারিয়েবলও ব্যবহার করতে পারেন, এবং Java থেকে সেই JavaScript ফাংশন বা ভ্যারিয়েবল অ্যাক্সেস করতে পারেন।
উদাহরণ ২: JavaScript ফাংশন Java থেকে কল করা
import javax.script.*;
public class NashornFunctionExample {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript ফাংশন স্ট্রিং হিসেবে তৈরি করা
String script = "function add(a, b) { return a + b; }";
try {
// JavaScript ফাংশন ইভ্যালুয়েট করা
engine.eval(script);
// JavaScript ফাংশন কল করা
Invocable invocable = (Invocable) engine;
Object result = invocable.invokeFunction("add", 5, 10);
// ফলাফল প্রিন্ট করা
System.out.println(result); // Output: 15
} catch (ScriptException | NoSuchMethodException e) {
e.printStackTrace();
}
}
}এখানে, add নামক একটি JavaScript ফাংশন তৈরি করা হয়েছে এবং পরে invokeFunction() মেথডের মাধ্যমে সেই ফাংশনকে Java থেকে কল করা হয়েছে। ফলস্বরূপ, add(5, 10) ফাংশনের ফলাফল 15 প্রিন্ট করা হয়েছে।
৪. Java Objects ব্যবহার JavaScript কোডে
Nashorn ব্যবহার করে আপনি Java Objects এবং Java Classes কে JavaScript কোডে ব্যবহার করতে পারেন।
উদাহরণ ৩: Java Object ব্যবহার JavaScript কোডে
import javax.script.*;
public class JavaObjectInJavaScript {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// Java Object তৈরি
String javaCode = "var list = new java.util.ArrayList();"
+ "list.add('Java');"
+ "list.add('JavaScript');"
+ "list;";
try {
// JavaScript কোড চালানো এবং Java Object ব্যবহৃত হয়েছে
Object result = engine.eval(javaCode);
// ফলাফল প্রিন্ট করা
System.out.println(result); // Output: [Java, JavaScript]
} catch (ScriptException e) {
e.printStackTrace();
}
}
}এখানে, java.util.ArrayList নামক Java ক্লাস JavaScript কোডে ব্যবহার করা হয়েছে এবং এটি JavaScript কোডের মধ্যে এক্সেস করা হয়েছে।
৫. Java থেকে JavaScript Object ব্যবহার
Java Objects এবং JavaScript এর মধ্যে ডেটা পাস করতে Nashorn ব্যবহার করা যেতে পারে, যাতে Java Objects JavaScript এ ব্যবহার করা যায় এবং JavaScript এর মান Java এ ফেরত আনা যায়।
উদাহরণ ৪: Java থেকে JavaScript Object ব্যবহার করা
import javax.script.*;
public class JavaObjectToJS {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// Java Object তৈরি
String script = "var person = {name: 'John', age: 30};"
+ "person.name + ' is ' + person.age + ' years old';";
try {
// JavaScript Object ব্যবহার
Object result = engine.eval(script);
System.out.println(result); // Output: John is 30 years old
} catch (ScriptException e) {
e.printStackTrace();
}
}
}এখানে, JavaScript Object তৈরি করা হয়েছে এবং সেই Object এর প্রপার্টি Java থেকে এক্সেস করা হয়েছে।
সারসংক্ষেপ
- Nashorn হল Java 8 এর একটি JavaScript ইঞ্জিন যা
ScriptEngineAPI এর মাধ্যমে Java থেকে JavaScript কোড পরিচালনা করতে সহায়তা করে। ScriptEngineব্যবহার করে Java থেকে JavaScript কোড ইভ্যালুয়েট করা, JavaScript ফাংশন Java থেকে কল করা, এবং Java Objects JavaScript কোডে ব্যবহার করা সম্ভব।- Nashorn একটি শক্তিশালী টুল যা Java-তে JavaScript কোডের কার্যকারিতা ইন্টিগ্রেট করতে এবং উন্নত স্ক্রিপ্টিং সমাধান প্রদান করতে সাহায্য করে।
Java 8 এর Nashorn ইঞ্জিন আপনাকে Java এবং JavaScript কোডের মধ্যে ইন্টিগ্রেশন করার সুযোগ দেয়, যা আপনাকে একত্রিত প্রোগ্রামিং সমাধান তৈরি করতে সহায়তা করে।
Read more