Self-contained Applications হল এমন ধরনের JavaFX অ্যাপ্লিকেশন যা নির্দিষ্ট প্ল্যাটফর্মের জন্য স্ব-নির্ভর (standalone) হয়ে থাকে। এটি JavaFX অ্যাপ্লিকেশনটির সব প্রয়োজনীয় ফাইল (যেমন JDK, লাইব্রেরি এবং অ্যাপ্লিকেশনের ডিপেন্ডেন্সি) একত্রিত করে এবং এমন একটি ফর্ম্যাটে রূপান্তরিত করে যা সরাসরি ব্যবহারকারীর মেশিনে রান করতে পারে।
JavaFX অ্যাপ্লিকেশনগুলির জন্য Self-contained applications তৈরি করতে jlink এবং jpackage টুল ব্যবহার করা হয়, যা JDK 14 এবং তার পরবর্তী সংস্করণে অন্তর্ভুক্ত হয়েছে। এই টুলগুলি আপনাকে একটি কার্যকরী JRE এবং অ্যাপ্লিকেশন প্যাকেজ তৈরি করতে সহায়তা করে।
JavaFX অ্যাপ্লিকেশনের জন্য Self-contained Application তৈরি করার পদক্ষেপ:
- JDK Setup:
- JDK 14 বা তার পরবর্তী সংস্করণ ইন্সটল করা থাকতে হবে।
- JavaFX SDK ইন্সটল করা থাকতে হবে এবং আপনার প্রকল্পে JavaFX লাইব্রেরি অন্তর্ভুক্ত করা থাকতে হবে।
- jlink ব্যবহার করে JRE তৈরি করা:
jlinkটুল ব্যবহার করে আপনি একটি ছোট এবং কাস্টম JRE তৈরি করতে পারেন, যা শুধুমাত্র আপনার অ্যাপ্লিকেশন এবং তার নির্ভরশীল লাইব্রেরিগুলি অন্তর্ভুক্ত করবে। এটি অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় ফাইলগুলোকে একত্রিত করে।
JRE তৈরি করার জন্য jlink ব্যবহার করা:
প্রথমে একটি কাস্টম JRE তৈরি করতে হবে:
jlink --module-path $JAVA_HOME/jmods --add-modules javafx.controls,javafx.fxml --output myapp-jreএখানে:
$JAVA_HOME/jmods: JDK এর মডিউল ডিরেক্টরি।javafx.controls, javafx.fxml: আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় JavaFX মডিউলগুলো।myapp-jre: তৈরি করা JRE এর আউটপুট ডিরেক্টরি।
- jpackage ব্যবহার করে Self-contained Application তৈরি করা:
jpackageটুল ব্যবহার করে আপনি একটি প্ল্যাটফর্ম নির্ভর প্যাকেজ তৈরি করতে পারেন (যেমন.exe,.dmg,.deb,.rpmইত্যাদি)। এটি JRE, আপনার অ্যাপ্লিকেশন, এবং প্রয়োজনীয় লাইব্রেরি একত্রিত করে একটি একক ইনস্টলার তৈরি করে।
jpackage ব্যবহার করে Self-contained Application তৈরি করা:
jpackage --type exe --input target/ --name MyJavaFXApp --main-jar myapp.jar --main-class com.myapp.Main --java-options "-Xmx512m" --module-path "path/to/javafx-sdk/lib" --add-modules javafx.controls,javafx.fxml --runtime-image myapp-jre
এখানে:
- --type exe: উইন্ডোজের জন্য
.exeফাইল তৈরি করা। - --input target/: আপনার অ্যাপ্লিকেশনের jar ফাইল যেখানে রয়েছে।
- --name MyJavaFXApp: তৈরি করা অ্যাপ্লিকেশনের নাম।
- --main-jar myapp.jar: মূল JAR ফাইলের নাম।
- --main-class com.myapp.Main: অ্যাপ্লিকেশনের মূল ক্লাস।
- --java-options "-Xmx512m": Java অপশন (এখানে, আপনি Java এর হিপ মেমরি সীমা সেট করছেন)।
- --module-path "path/to/javafx-sdk/lib": JavaFX SDK এর পাথ।
- --add-modules javafx.controls,javafx.fxml: JavaFX মডিউলগুলো যুক্ত করা।
- --runtime-image myapp-jre: jlink দ্বারা তৈরি কাস্টম JRE।
এই কমান্ডটি আপনার অ্যাপ্লিকেশনের জন্য একটি প্ল্যাটফর্ম নির্ভর ইনস্টলার তৈরি করবে, যা কোনও অতিরিক্ত ইনস্টলেশন ছাড়া সরাসরি রান করা যাবে।
উদাহরণ: একটি JavaFX অ্যাপ্লিকেশন তৈরি করা এবং Self-contained Application তৈরি করা
1. JavaFX অ্যাপ্লিকেশন কোড:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Click Me!");
btn.setOnAction(e -> System.out.println("Button clicked!"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Application");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
2. JAR ফাইল তৈরি করা:
javac Main.java(কোড কম্পাইল করা)jar --create --file myapp.jar -C . Main.class(JAR ফাইল তৈরি করা)
3. JRE তৈরি করা:
jlink --module-path $JAVA_HOME/jmods --add-modules javafx.controls,javafx.fxml --output myapp-jre
4. Self-contained Application তৈরি করা:
jpackage --type exe --input target/ --name MyJavaFXApp --main-jar myapp.jar --main-class Main --module-path "path/to/javafx-sdk/lib" --add-modules javafx.controls,javafx.fxml --runtime-image myapp-jre
Self-contained Application তৈরি করার সুবিধা:
- পোর্টেবল: আপনি একটি একক ইনস্টলার তৈরি করতে পারেন যা সহজেই অন্য কম্পিউটারে চলবে, যেখানে JRE এর প্রয়োজনীয় অংশ একত্রিত থাকে।
- সহজ ইনস্টলেশন: ইউজারের জন্য শুধুমাত্র ইনস্টলার চালানোই যথেষ্ট, তাদের জন্য আলাদাভাবে Java বা JavaFX SDK ইনস্টল করার প্রয়োজন হয় না।
- কম্পাইলড প্যাকেজ: অ্যাপ্লিকেশন এবং JRE একত্রিত থাকায় এটি দ্রুত রান হয় এবং ছোট আকারে থাকে।
সারাংশ:
JavaFX অ্যাপ্লিকেশনগুলির জন্য Self-contained applications তৈরি করতে jlink এবং jpackage টুল ব্যবহার করা হয়। jlink একটি কাস্টম JRE তৈরি করতে সহায়তা করে, এবং jpackage সেই JRE এবং অ্যাপ্লিকেশনটি একত্রিত করে একটি ইনস্টলার তৈরি করে, যা ইউজারের কাছে সহজভাবে বিতরণ করা যায়।
Read more