WebAssembly और Java के साथ कार्य: ब्राउज़र में Java कोड चलाना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: WebAssembly में Java क्यों?



WebAssembly (WASM) एक निम्न-स्तरीय बाइनरी निर्देश प्रारूप है, जिसे ब्राउज़र में लगभग मूल प्रदर्शन के साथ निष्पादित करने के लिए डिज़ाइन किया गया है। लंबे समय तक, Java अपनी वर्चुअल मशीन (JVM) के कारण इस पारिस्थितिकी तंत्र से बाहर रहा। हालाँकि, TeaVM और CheerpJ जैसे आधुनिक उपकरण Java कोड को WebAssembly में संकलित करने की अनुमति देते हैं, जो वेब विकास के लिए नई संभावनाएँ खोलते हैं।



इस लेख में, हम Java + WebAssembly संयोजन के काम करने के तरीके को समझेंगे, व्यावहारिक उदाहरण देखेंगे और प्रदर्शन का मूल्यांकन करेंगे। आप सीखेंगे कि मौजूदा Java कोड को JavaScript में फिर से लिखे बिना ब्राउज़र में कैसे स्थानांतरित किया जाए।



Java और WebAssembly के एकीकरण के मुख्य दृष्टिकोण



WebAssembly में Java कोड चलाने के दो मुख्य तरीके हैं:



  • बाइट-कोड का WASM में संकलन — TeaVM का उपयोग किया जाता है, जो Java बाइटकोड को WebAssembly में अनुवादित करता है।
  • ब्राउज़र में JVM चलाना — CheerpJ WebAssembly में JVM का अनुकरण करता है, जिससे अपरिवर्तित Java अनुप्रयोगों को चलाया जा सकता है।


पहला दृष्टिकोण नई परियोजनाओं के लिए बेहतर है, क्योंकि यह छोटे बंडल आकार और बेहतर प्रदर्शन देता है। दूसरा दृष्टिकोण विरासत अनुप्रयोगों को पोर्ट करने के लिए उपयुक्त है।



TeaVM के साथ प्रोजेक्ट सेटअप



TeaVM के साथ काम शुरू करने के लिए, pom.xml (Maven) में निर्भरता जोड़ें:



<dependency>    <groupId>org.teavm</groupId>    <artifactId>teavm-classlib</artifactId>    <version>0.9.0</version></dependency>


संकलन के लिए एक सरल Java वर्ग बनाएँ:



import org.teavm.jso.JSBody;import org.teavm.jso.JSExport;

public class Calculator { @JSExport public static int add(int a, int b) { return a + b; } @JSExport public static int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); }}


एनोटेशन @JSExport विधियों को JavaScript से सुलभ बनाता है। संकलन के बाद, आपको एक WASM मॉड्यूल और एक JavaScript रैपर प्राप्त होगा।



व्यावहारिक उदाहरण: JavaScript से संकलन और कॉल



संकलन से लेकर ब्राउज़र में कॉल तक के पूरे चक्र पर विचार करें। पहले TeaVM प्लगइन का उपयोग करके Java कोड संकलित करें:



<plugin>    <groupId>org.teavm</groupId>    <artifactId>teavm-maven-plugin</artifactId>    <version>0.9.0</version>    <configuration>        <targetType>WEBASSEMBLY</targetType>        <mainClass>com.example.Calculator</mainClass>    </configuration>    <executions>        <execution>            <goals>                <goal>compile</goal>            </goals>        </execution>    </executions></plugin>


बिल्ड (mvn package) के बाद, target फ़ोल्डर में फ़ाइलें दिखाई देंगी: calculator.wasm और calculator.js। अब एक HTML पेज बनाएँ:



<!DOCTYPE html><html><head>    <title>Java + WebAssembly Demo</title></head><body>    <h1>WASM में Java कैलकुलेटर</h1>    <p>परिणाम: <span id="result"></span></p>        <script src="calculator.js"></script>    <script>        // WASM लोड होने के बाद कॉलबैक फ़ंक्शन        teavmMain().then(function(api) {            var sum = api.com.example.Calculator.add(15, 27);            var fact = api.com.example.Calculator.factorial(5);            document.getElementById('result').innerHTML =                 '15 + 27 = ' + sum + '<br>' +                '5! = ' + fact;        });    </script></body></html>


पेज खोलें

ब्लॉग

पुस्तक अनुशंसाएँ