Editor Downcodes akan menunjukkan kepada Anda berbagai metode pemanggilan Java JavaScript! Interoperabilitas antara Java dan JavaScript semakin penting, dan artikel ini akan membahas secara mendalam empat metode utama: menggunakan ScriptEngineManager, mesin Nashorn JavaScript, Duktape, dan GraalVM. Masing-masing metode ini memiliki kelebihan dan kekurangannya masing-masing dan cocok untuk skenario yang berbeda, membantu pengembang untuk secara fleksibel menggunakan fungsi JavaScript yang kuat dalam aplikasi Java untuk meningkatkan efisiensi pengembangan dan kinerja aplikasi. Artikel ini akan membantu Anda menguasai teknologi ini dengan cepat melalui contoh kode yang jelas dan penjelasan mendetail, serta dilengkapi dengan FAQ untuk membantu Anda mendapatkan pemahaman lebih dalam tentang interaksi antara Java dan JavaScript.
Kode Java dapat memanggil skrip JavaScript dengan berbagai cara, termasuk menggunakan ScriptEngineManager, mesin Nashorn JavaScript, Duktape, dan GraalVM. Teknologi ini memungkinkan eksekusi kode JavaScript di mesin virtual Java, sehingga meningkatkan fleksibilitas dan fungsionalitas JavaScript dalam aplikasi Java.
Misalnya, menggunakan ScriptEngineManager adalah cara umum Java untuk memanggil skrip JavaScript karena ini adalah metode standar yang dibangun di Java. Selain itu, dengan peluncuran GraalVM baru dari Oracle yang berkinerja tinggi, menjalankan skrip JavaScript melalui GraalVM menjadi lebih efisien.
Platform Java menyediakan kelas ScriptEngineManager, yang merupakan bagian dari paket javax.script di Java SE 6 dan lebih tinggi, yang dirancang khusus untuk menyediakan integrasi dengan bahasa skrip. ScriptEngineManager memungkinkan kode Java berinteraksi dengan bahasa skrip, sehingga memanfaatkan keunggulan bahasa skrip, seperti pengembangan cepat dan pengetikan dinamis.
Untuk menggunakan ScriptEngineManager, Anda hanya perlu membuat sebuah instance dan mendapatkan lingkungan eksekusi JavaScript melaluinya. Berikut ini contoh sederhana cara menggunakan ScriptEngineManager:
impor javax.script.ScriptEngineManager;
impor javax.script.ScriptEngine;
impor javax.script.ScriptException;
JavaScript kelas publikDariJava {
public static void mAIn(String[] args) {
// Membuat objek ScriptEngineManager
Manajer ScriptEngineManager = ScriptEngineManager baru();
// Dapatkan ScriptEngine JavaScript
Mesin ScriptEngine = manajer.getEngineByName(JavaScript);
mencoba {
//Jalankan kode JavaScript
engine.eval(print('Halo, Dunia!'));
} tangkapan (ScriptException e) {
e.printStackTrace();
}
}
}
Nashorn, diperkenalkan sejak Java SE 8, adalah mesin JavaScript berkinerja tinggi yang memungkinkan menjalankan JavaScript di JVM, memberikan kinerja dan kompatibilitas lebih baik dengan spesifikasi ECMAScript 5.1.
Mirip dengan ScriptEngineManager, Anda perlu menggunakan kelas ini untuk mendapatkan instance mesin Nashorn dan mengeksekusi kode JavaScript.
impor javax.script.ScriptEngineManager;
impor javax.script.ScriptEngine;
impor javax.script.ScriptException;
kelas publik NashornContoh {
public static void main(String[] args) {
// Buat ScriptEngineManager
Manajer ScriptEngineManager = ScriptEngineManager baru();
// Dapatkan ScriptEngine Nashorn
Mesin ScriptEngine = manajer.getEngineByName(nashorn);
mencoba {
//Jalankan skrip JavaScript
engine.eval(print('Halo, Nashorn!'));
} tangkapan (ScriptException e) {
e.printStackTrace();
}
}
}
Duktape adalah mesin JavaScript tertanam yang ringan, mudah diintegrasikan, dan dapat menyediakan lingkungan eksekusi JavaScript di berbagai sistem. Duktape cocok untuk situasi di mana Anda perlu menjalankan JavaScript di lingkungan dengan sumber daya terbatas.
Karena Duktape adalah mesin JavaScript yang ditulis dalam C, biasanya perlu diintegrasikan dengan aplikasi Java melalui JNI (Java Native Interface). Kode JNI yang sesuai perlu ditulis untuk menjembatani kode Java dan mesin Duktape.
// Asumsikan sudah ada antarmuka JNI
Contoh Duktape kelas umum {
//deklarasi metode JNI
Eksekusi String asli publik (skrip String);
statis {
//Muat perpustakaan yang berisi implementasi metode asli
System.loadLibrary(duktape);
}
public static void main(String[] args) {
Contoh DuktapeContoh = Contoh Duktape baru();
// Panggil Duktape untuk mengeksekusi JavaScript melalui JNI
Hasil string = example.executeScript(var msg = 'Halo, Duktape!'; msg;);
System.out.println(hasil);
}
}
GraalVM adalah mesin virtual baru yang dapat menjalankan berbagai bahasa, termasuk Java dan JavaScript. Tujuan GraalVM adalah menyediakan runtime tunggal untuk mengeksekusi semua bahasa pemrograman, yang ditandai dengan kinerja tinggi dan koeksistensi multi-bahasa.
Di GraalVM, Anda dapat menggunakan kelas Context untuk membuat lingkungan runtime untuk mengeksekusi JavaScript.
import org.graalvm.polyglot.*;
kelas publik GraalVMExample {
public static void main(String[] args) {
// Gunakan Konteks GraalVM untuk menjalankan kode JavaScript
coba (Konteks konteks = Konteks.buat()) {
// Jalankan kode JavaScript
Nilai hasil = konteks.eval(js, print('Halo, GraalVM!'););
}
}
}
Melalui metode di atas, Java dapat memanggil skrip JavaScript dan memanfaatkan karakteristik pemrograman dinamis JavaScript dalam berbagai skenario. Baik melalui ScriptEngineManager, Nashorn, Duktape, atau GraalVM, interoperabilitas Java dan JavaScript memberi pengembang alat canggih untuk membuat aplikasi yang fleksibel dan kaya fitur.
1. Bagaimana cara memanggil skrip JavaScript dalam kode Java?
Memanggil skrip JavaScript di Java dapat dilakukan dengan menggunakan antarmuka ScriptEngine Java. Pertama, Anda perlu membuat instance ScriptEngine dan kemudian memuat skrip JavaScript ke dalam instance tersebut. Selanjutnya, Anda dapat menggunakan metode eval() pada instance ScriptEngine untuk mengeksekusi kode JavaScript. Misalnya:
//Buat instance ScriptEngine ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName(JavaScript);try { //Muat skrip JavaScript engine.eval(function sayHello() { return 'Halo, Dunia!'; }); // Memanggil fungsi JavaScript Hasil objek = engine.eval(sayHello()); // Hasil keluaran System.out.println(result.toString());} catch (ScriptException e) { e.printStackTrace();}2. Bagaimana cara meneruskan objek Java ke skrip JavaScript?
Jika Anda ingin mengakses objek Java dalam skrip JavaScript, Anda dapat mengikat objek Java ke variabel global dalam instance ScriptEngine. Dengan cara ini, Anda bisa menggunakan variabel dalam skrip JavaScript untuk memanggil metode objek Java dan mengakses propertinya. Misalnya:
//Buat instance ScriptEngine ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName(JavaScript);try { //Ikat objek Java ke variabel global di ScriptEngine engine.put(myObject, new MyObject()); // Gunakan variabel ini dalam skrip JavaScript engine.eval(myObject.sayHello(););} catch (ScriptException e) { e.printStackTrace();}// Definisikan objek Java public class MyObject { public void sayHello() { System.out.println(Halo dari Java! }}3. Bagaimana cara mendapatkan nilai kembalian skrip JavaScript di Java?
Untuk mendapatkan nilai kembalian skrip JavaScript, Anda dapat menggunakan metode eval() dari instance ScriptEngine untuk mengeksekusi skrip dan menyimpan nilai kembalian dalam sebuah variabel. Misalnya:
//Buat instance ScriptEngine ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName(JavaScript);try { //Jalankan skrip JavaScript dan dapatkan nilai yang dikembalikan Object result = engine.eval(function sayHello() { return 'Halo, Dunia!'; } sayHello();); // Hasil keluaran System.out.println(result.toString());} catch (ScriptException e) { e.printStackTrace();}Pada kode di atas, nilai kembalian skrip JavaScript adalah string Halo, Dunia!. Dengan menyimpan hasil eksekusi skrip dalam variabel hasil, kita dapat mencetak nilai kembalian ini.
Saya harap artikel ini dapat membantu Anda lebih memahami bagaimana Java memanggil JavaScript. Untuk pengetahuan lebih lanjut terkait Java, silakan terus ikuti editor Downcodes!