JavaFX অ্যাপ্লিকেশন এর জন্য Self-contained Applications তৈরি করা JavaFX অ্যাপ্লিকেশনগুলোকে একটি একক ডিস্ট্রিবিউটেবল ইউনিটে প্যাকেজ করার প্রক্রিয়া। এর মাধ্যমে, আপনি JavaFX অ্যাপ্লিকেশনটি একটি ইন্সটলার বা একক চালানোর ফাইল (যেমন .exe বা .dmg) আকারে তৈরি করতে পারেন, যাতে এটি Java runtime environment (JRE) অথবা Java Development Kit (JDK) ছাড়াই চালানো যায়।
JavaFX অ্যাপ্লিকেশনকে self-contained করার জন্য Java 8 এর পর থেকে jlink এবং jpackage টুল ব্যবহার করা যায়। jlink টুলটি মূলত Java runtime image তৈরি করে এবং jpackage টুলটি সেই রUNTIME image এবং অ্যাপ্লিকেশনকে একটি একক চালানোর ফাইল তৈরি করতে ব্যবহৃত হয়।
JavaFX অ্যাপ্লিকেশনের জন্য Self-contained Application তৈরি করার ধাপগুলি
- JavaFX অ্যাপ্লিকেশন তৈরি করা:
- প্রথমে আপনার JavaFX অ্যাপ্লিকেশন তৈরি করুন।
- JDK 14 বা পরবর্তী সংস্করণে jpackage ব্যবহার করা:
- JDK 14 থেকে Java 14 পর্যন্ত jpackage টুলটি অন্তর্ভুক্ত করা হয়েছে। এটি আপনাকে একটি native installer তৈরি করতে সহায়তা করে, যেমন
.exe(Windows),.dmg(macOS), বা.rpm(Linux)।
- JDK 14 থেকে Java 14 পর্যন্ত jpackage টুলটি অন্তর্ভুক্ত করা হয়েছে। এটি আপনাকে একটি native installer তৈরি করতে সহায়তা করে, যেমন
- JLink এবং JPackage ব্যবহার করা:
- JLink: এটি আপনার অ্যাপ্লিকেশনের জন্য একটি কাস্টম জাভা রানটাইম ইমেজ তৈরি করতে ব্যবহৃত হয়, যা অ্যাপ্লিকেশনটি Java runtime এর নির্দিষ্ট উপাদানগুলি অন্তর্ভুক্ত করবে।
- JPackage: এটি একটি নিখুঁত রানটাইম ইমেজ তৈরি করতে সাহায্য করে এবং সেই ইমেজকে একটি ইনস্টলার হিসেবে প্যাকেজ করে (যেমন
.exe,.dmg,.rpm, ইত্যাদি)।
Step-by-step Example to Create Self-contained JavaFX Application:
1. JavaFX অ্যাপ্লিকেশন তৈরি করা:
নিম্নলিখিত কোড একটি সাধারণ 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 HelloWorldApp extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Click me!");
btn.setOnAction(e -> System.out.println("Hello World"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("Hello World JavaFX App");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
2. Maven বা Gradle ব্যবহার করে JavaFX যোগ করা:
JavaFX লাইব্রেরি অ্যাপ্লিকেশনে যোগ করতে, আপনি Maven বা Gradle ব্যবহারের মাধ্যমে JavaFX dependency যুক্ত করতে পারেন।
Maven pom.xml ফাইল:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>16</version> <!-- Use the latest JavaFX version -->
</dependency>
Gradle build.gradle ফাইল:
dependencies {
implementation 'org.openjfx:javafx-controls:16' // Use the latest JavaFX version
}
3. JLink (Custom Java Runtime Image):
JavaFX অ্যাপ্লিকেশনটি একটি self-contained Java runtime image তৈরি করতে JLink ব্যবহার করা যেতে পারে। JLink কাস্টম JRE তৈরি করার জন্য Java 9 এর পর থেকেই উপলব্ধ।
JLink ব্যবহার করে Custom Java Runtime তৈরি:
- প্রথমে, আপনার প্রজেক্টটি বিল্ড করুন, এবং প্রয়োজনীয় modules ইনক্লুড করুন।
- আপনার প্রজেক্টের জন্য একটি কাস্টম JRE ইমেজ তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
jlink --module-path $JAVA_HOME/jmods --add-modules javafx.controls,javafx.fxml --output myAppImage
এই কমান্ডটি আপনার অ্যাপ্লিকেশন এবং প্রয়োজনীয় JavaFX মডিউলগুলিকে একটি কাস্টম JRE ইমেজে প্যাকেজ করবে। এখানে:
--module-pathদ্বারা Java JDK এর jmods ডিরেক্টরি পথ নির্দিষ্ট করা হয়েছে।--add-modulesদ্বারা JavaFX মডিউলগুলিকে যুক্ত করা হয়েছে।--outputদ্বারা সেই কাস্টম রানটাইম ইমেজটির আউটপুট ফোল্ডার নির্দিষ্ট করা হয়েছে।
4. jPackage (Application Packaging):
jpackage টুলটি ব্যবহার করে আপনি একটি standalone অ্যাপ্লিকেশন প্যাকেজ তৈরি করতে পারেন, যা উইন্ডোজ, macOS, বা লিনাক্সের জন্য ইনস্টলার তৈরি করবে।
jpackage ব্যবহার করে Self-contained Application তৈরি:
- প্রথমে JLink Image তৈরি করুন (আগের স্টেপে দেখানো হয়েছে)।
- তারপর
jpackageব্যবহার করে ইনস্টলার তৈরি করুন:
jpackage --type exe --input myAppImage --name HelloWorldApp --main-class HelloWorldApp --main-jar HelloWorldApp.jar --java-options '-Xmx512m'
এখানে:
--type exe: উইন্ডোজের জন্য.exeফাইল তৈরি করতে।--input: যেখানে আপনি আপনার অ্যাপ্লিকেশন এবং কাস্টম JRE ইমেজ রেখেছেন।--name: আপনার অ্যাপ্লিকেশনের নাম।--main-class: অ্যাপ্লিকেশনের প্রধান ক্লাস।--main-jar: অ্যাপ্লিকেশনের মূল জার ফাইল।--java-options: JVM এর জন্য অতিরিক্ত অপশনসমূহ।
এই কমান্ডের মাধ্যমে একটি self-contained installer তৈরি হবে, যা JavaFX অ্যাপ্লিকেশন এবং তার নির্ভরতা নিয়ে একটি একক ইনস্টলার বা চালানো ফাইল তৈরি করবে।
5. MacOS বা Windows এর জন্য Inno Setup/DMG বানানো:
- Windows এর জন্য আপনি Inno Setup ব্যবহার করতে পারেন, যা একটি ইনস্টলার তৈরি করতে সাহায্য করবে।
- macOS এর জন্য আপনি DMG ফাইল তৈরি করতে পারেন।
সারাংশ:
- Self-contained JavaFX Applications তৈরির জন্য jlink এবং jpackage টুলগুলি ব্যবহার করা হয়।
- jlink টুলটি একটি কাস্টম Java runtime ইমেজ তৈরি করে, যেখানে শুধুমাত্র প্রয়োজনীয় মডিউল থাকে।
- jpackage টুলটি সেই রানটাইম ইমেজটি এবং আপনার অ্যাপ্লিকেশনটি একটি ইনস্টলার বা এক্সিকিউটেবল ফাইল আকারে প্যাকেজ করে।
- এটি নিশ্চিত করে যে অ্যাপ্লিকেশনটি Java runtime environment ছাড়াই সহজে চালানো যাবে।
Read more