JavaFX অ্যাপ্লিকেশন প্যাকেজ করা হচ্ছে একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে আপনি আপনার JavaFX অ্যাপ্লিকেশনটি একটি একক এক্সিকিউটেবল ফাইল (JAR ফাইল, EXE ফাইল ইত্যাদি) বা প্যাকেজ আকারে রূপান্তর করতে পারেন, যাতে এটি ব্যবহারকারীদের জন্য সহজে ইনস্টল এবং রান করা যায়। JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য কিছু নির্দিষ্ট টুলস এবং পদক্ষেপ রয়েছে, যেগুলি আপনাকে অ্যাপ্লিকেশনটি প্যাকেজ করতে সহায়তা করবে।
JavaFX অ্যাপ্লিকেশন প্যাকেজ করার পদক্ষেপ:
- Maven বা Gradle ব্যবহার করা:
- Maven বা Gradle হল দুটি জনপ্রিয় বিল্ড টুল যা JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য ব্যবহৃত হতে পারে। আপনি এই টুলগুলির মাধ্যমে প্রজেক্টে JavaFX লাইব্রেরি অ্যাড করে সহজেই প্যাকেজ করতে পারেন।
- JDK 14 বা তার পরবর্তী সংস্করণের সাথে JavaFX প্যাকেজিং:
- JDK 14 থেকে JavaFX আলাদা হয়ে গেছে, এবং এখন JavaFX-কে একটি পৃথক লাইব্রেরি হিসেবে ডাউনলোড করতে হয়। তাই JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য
jlinkবাjavapackagerটুল ব্যবহার করা যেতে পারে।
- JDK 14 থেকে JavaFX আলাদা হয়ে গেছে, এবং এখন JavaFX-কে একটি পৃথক লাইব্রেরি হিসেবে ডাউনলোড করতে হয়। তাই JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য
JavaFX অ্যাপ্লিকেশন প্যাকেজিং করার জন্য জাভা 11+ এর সাথে jlink ব্যবহার করা:
Java 11 থেকে JDK-র মধ্যে
jlinkটুলটি রয়েছে, যা আপনাকে একটি মোবাইল, লাইটওয়েট এবং ইনস্টলযোগ্য JavaFX অ্যাপ্লিকেশন বানাতে সাহায্য করবে।
JavaFX অ্যাপ্লিকেশন প্যাকেজ করা JDK 14+ এর সাথে
JavaFX অ্যাপ্লিকেশন প্যাকেজ করতে সাধারণত দুটি ধাপ নিতে হয়:
- JavaFX লাইব্রেরি ডাউনলোড এবং কনফিগারেশন
- অ্যাপ্লিকেশন প্যাকেজিং
ধাপ ১: JavaFX লাইব্রেরি সেটআপ
- JavaFX SDK ডাউনলোড করুন:
- প্রথমে, JavaFX SDK ডাউনলোড করুন JavaFX Downloads থেকে এবং এটি আপনার মেশিনে ইনস্টল করুন।
- Maven বা Gradle ব্যবহার করুন:
- JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য Maven বা Gradle ব্যবহার করলে সহজ হবে। এখানে Maven ব্যবহারের একটি উদাহরণ দেওয়া হল:
Maven Configuration:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>16</version>
</dependency>
ধাপ ২: JavaFX অ্যাপ্লিকেশন প্যাকেজিং
Run the application with JDK's
jlink:- আপনি
jlinkটুল ব্যবহার করে আপনার অ্যাপ্লিকেশনটি একটি রানটাইট প্যাকেজে রূপান্তর করতে পারেন।
jlink টুলটি Java 9 এর পর থেকে JDK তে অন্তর্ভুক্ত করা হয়েছে। এটি আপনাকে নিজের প্রয়োজনীয় Java runtime image তৈরি করতে সাহায্য করবে, যা আপনার অ্যাপ্লিকেশন চালানোর জন্য শুধুমাত্র প্রাসঙ্গিক লাইব্রেরি এবং JavaFX SDK নিয়ে একটি ছোট সিস্টেম তৈরি করবে।
উদাহরণস্বরূপ,
jlinkব্যবহার করে একটি JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য:- আপনি
jlink --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml --output my-app
এখানে:
$PATH_TO_FX: JavaFX SDK এর লোকেশনmy-app: আউটপুট ফোল্ডার যেখানে প্যাকেজিং করা হবে
- Creating Executable Jar:
- আপনি Maven বা Gradle এর সাহায্যে একটি Executable JAR ফাইলও তৈরি করতে পারেন।
Maven Shade Plugin ব্যবহার করে Executable JAR তৈরি করা:
pom.xml ফাইলে Maven Shade Plugin ব্যবহার করে Executable JAR তৈরি করতে পারেন:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>your.main.class</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
- Creating a Native Package (EXE or DMG):
- jpackage: Java 14 থেকে একটি নতুন টুল
jpackageএসেছে যা আপনাকে আপনার অ্যাপ্লিকেশনকে একটি native package (EXE, DMG, etc.) তৈরি করতে সাহায্য করে।
- jpackage: Java 14 থেকে একটি নতুন টুল
jpackage Example:
jpackage --input target/ --name MyApp --main-jar myapp.jar --type exe
এটি একটি MyApp.exe ফাইল তৈরি করবে, যা উইন্ডোজ সিস্টেমে রান করা যাবে।
ধাপ ৩: Application Execution:
অ্যাপ্লিকেশন প্যাকেজ করার পর, আপনি JavaFX অ্যাপ্লিকেশনটি চালানোর জন্য একটি এক্সিকিউটেবল ফাইল (JAR, EXE) তৈরি করতে পারেন। এক্সিকিউটেবল ফাইলটি আপনার অ্যাপ্লিকেশনটির ইনস্টলেশন এবং ব্যবহারের জন্য আরও সুবিধাজনক হবে।
JavaFX অ্যাপ্লিকেশন প্যাকেজিং-এর জন্য কিছু গুরুত্বপূর্ণ টুলস:
- jlink:
- একটি কাস্টম runtime image তৈরি করতে ব্যবহৃত হয় যা JavaFX অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় সব লাইব্রেরি অন্তর্ভুক্ত করে।
- jpackage:
- JavaFX অ্যাপ্লিকেশনকে একটি native installer (যেমন EXE, DMG, DEB) তৈরি করার জন্য ব্যবহৃত হয়।
- Maven/Gradle:
- প্রজেক্ট ম্যানেজমেন্ট এবং বিল্ড টুল, যা JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য ব্যবহৃত হয়।
- Maven Shade Plugin:
- একটি JAR ফাইল তৈরির জন্য, যা সমস্ত ডিপেন্ডেন্সি একসাথে প্যাকেজ করে।
সারাংশ:
JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য, Java 14+ এর সাথে jlink এবং jpackage টুল ব্যবহার করা যেতে পারে। এই টুলগুলির মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটি সহজেই এক্সিকিউটেবল ফাইল আকারে প্যাকেজ করতে পারবেন, যা ব্যবহারকারীদের জন্য ইনস্টলেশন এবং রান করা সহজ করে তোলে। jlink কাস্টম রানটাইম তৈরি করতে এবং jpackage native প্যাকেজ তৈরি করতে ব্যবহৃত হয়। Maven এবং Gradle ব্যবহার করে বিল্ড এবং প্যাকেজিং আরো সহজ এবং অটোমেটিক করা যায়।
JavaFX অ্যাপ্লিকেশন তৈরি করার পর, আপনি সেই অ্যাপ্লিকেশনটি একটি JAR (Java ARchive) ফাইল অথবা JNLP (Java Network Launch Protocol) ফাইল হিসেবে প্যাকেজ করতে পারেন, যাতে এটি বিভিন্ন পরিবেশে (যেমন ডেস্কটপ অথবা ওয়েব) সহজে চালানো যায়। নিচে, আমরা JAR এবং JNLP ফাইল তৈরি করার প্রক্রিয়া এবং ব্যবহার দেখবো।
1. JAR (Java ARchive) ফাইল তৈরি করা
একটি JAR ফাইল হল Java অ্যাপ্লিকেশনের একটি কম্প্রেসড প্যাকেজ, যা সমস্ত ক্লাস ফাইল, লাইব্রেরি এবং অন্যান্য প্রয়োজনীয় ফাইলগুলোকে একটি একক ফাইলে ধারণ করে। এটি Java অ্যাপ্লিকেশনকে একত্রিত করে এবং সহজে পরিবেশন ও ডিস্ট্রিবিউট করতে সাহায্য করে।
JAR ফাইল তৈরি করার পদ্ধতি:
- JavaFX অ্যাপ্লিকেশন কোড তৈরি করুন: আপনি যে JavaFX অ্যাপ্লিকেশনটি তৈরি করেছেন, সেটি কমপাইল করা হবে এবং তারপর JAR ফাইলে প্যাকেজ করা হবে।
manifest.mfফাইল তৈরি করা:- একটি
manifest.mfফাইল তৈরি করতে হবে, যেখানে আপনার অ্যাপ্লিকেশনের প্রধান ক্লাসের তথ্য থাকবে। Main-Classএন্ট্রি ব্যবহার করে আপনি অ্যাপ্লিকেশনের মূল ক্লাসটি নির্ধারণ করবেন।
- একটি
- JAR ফাইল তৈরি করার জন্য কমান্ড লাইন ব্যবহার করা:
- নিচে একটি উদাহরণ দেওয়া হল যেখানে JavaFX অ্যাপ্লিকেশনটি কমপাইল এবং JAR ফাইল হিসেবে প্যাকেজ করা হয়েছে।
Main-Class সহ manifest.mf ফাইল তৈরি করা:
Manifest-Version: 1.0
Main-Class: com.example.MyJavaFXApp
JAR ফাইল তৈরি করার জন্য কমান্ড:
jar cfm MyApp.jar manifest.mf -C path_to_classes_folder .
-c: JAR ফাইল তৈরি করতে।-f: ফাইলের নাম নির্ধারণ করতে (এখানেMyApp.jar)।-m:manifest.mfফাইল নির্দিষ্ট করতে।-C: ক্লাস ফোল্ডারটি যোগ করতে, যেখানে আপনার কমপাইল করা ক্লাস ফাইলগুলি রয়েছে।
JavaFX অ্যাপ্লিকেশন চালানো JAR ফাইল থেকে:
java -jar MyApp.jar
2. JNLP (Java Network Launch Protocol) ফাইল তৈরি করা
JNLP ফাইল Java অ্যাপ্লিকেশনকে Web Start বা Remote Launch এর মাধ্যমে চালানোর জন্য ব্যবহৃত হয়। এটি একটি XML ফাইল যা Java অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় সমস্ত তথ্য ধারণ করে।
Java Web Start প্রযুক্তি বর্তমানে আনুষ্ঠানিকভাবে সমর্থিত না হলেও, কিছু পুরানো অ্যাপ্লিকেশনগুলির জন্য এটি ব্যবহৃত হয়।
JNLP ফাইলের বৈশিষ্ট্য:
jnlpট্যাগ: সমস্ত তথ্য ধারণ করবে।information: অ্যাপ্লিকেশনের শিরোনাম, বিবরণ এবং আইকন।resources: সমস্ত অ্যাপ্লিকেশন ফাইলের অবস্থান।application-desc: অ্যাপ্লিকেশনের মূল ক্লাস এবং অন্যান্য রানটাইম কনফিগারেশন।
JNLP ফাইলের উদাহরণ:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://www.example.com/jarfiles/" href="myapp.jnlp">
<information>
<title>My JavaFX Application</title>
<vendor>My Company</vendor>
<description>A simple JavaFX application</description>
<icon kind="default" href="icon.png"/>
</information>
<resources>
<jar href="MyApp.jar" main="true"/>
<property name="javafx.runtime.version" value="8+" />
</resources>
<application-desc main-class="com.example.MyJavaFXApp">
</application-desc>
</jnlp>
JNLP ফাইলের বিবরণ:
<jnlp>: JNLP ফাইলের মূল ট্যাগ, যা ফাইলের স্পেসিফিকেশন এবং অ্যাপ্লিকেশনের URL বা পাথ নির্দেশ করে।<information>: অ্যাপ্লিকেশনের শিরোনাম, ডেভেলপার নাম, এবং অ্যাপ্লিকেশনের সংক্ষিপ্ত বিবরণ।<resources>: অ্যাপ্লিকেশন চলানোর জন্য প্রয়োজনীয় সমস্ত রিসোর্স (যেমন, JAR ফাইল) এবং তাদের অবস্থান।<application-desc>: অ্যাপ্লিকেশনের মূল ক্লাস এবং রানটাইম কনফিগারেশন।
JNLP ফাইল দিয়ে অ্যাপ্লিকেশন চালানো:
- প্রথমে, JNLP ফাইলটি একটি ওয়েব সার্ভারে আপলোড করুন (যেমন,
http://www.example.com/jnlp/myapp.jnlp)। - তারপর, ব্যবহারকারী Java Web Start অথবা একটি JNLP সমর্থিত ব্রাউজার দিয়ে অ্যাপ্লিকেশনটি চালাতে পারবেন।
Java Web Start (JNLP) চালানো:
javaws myapp.jnlp
JNLP এবং JAR ফাইল ব্যবহারের জন্য Java Web Start Configuration:
যেহেতু Java Web Start আর আধুনিক Java সংস্করণে আনুষ্ঠানিকভাবে সমর্থিত নয় (Java 9 এর পর থেকে), তাই আপনি Java 8 বা তার আগের সংস্করণে এই প্রযুক্তিটি ব্যবহার করতে পারেন। বর্তমানে, JavaFX অ্যাপ্লিকেশন প্যাকেজ করার জন্য JAR ফাইলের মাধ্যমেই সবচেয়ে ভালো পদ্ধতি।
সারাংশ:
- JAR ফাইল: একটি অ্যাপ্লিকেশন বা লাইব্রেরি প্যাকেজ করতে ব্যবহৃত হয়। এটি অ্যাপ্লিকেশনটির ক্লাস ফাইলগুলি এবং অন্যান্য প্রয়োজনীয় ফাইলগুলো একত্রিত করে একটি একক ফাইলে সংরক্ষণ করে।
- JNLP ফাইল: এটি একটি XML ফাইল যা Java Web Start ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়, বিশেষ করে ওয়েব থেকে অ্যাপ্লিকেশন লঞ্চ করতে।
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 ছাড়াই সহজে চালানো যাবে।
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 এবং অ্যাপ্লিকেশনটি একত্রিত করে একটি ইনস্টলার তৈরি করে, যা ইউজারের কাছে সহজভাবে বিতরণ করা যায়।
JavaFX অ্যাপ্লিকেশন তৈরির পর, আপনি চাইলে তা Native Installer হিসেবে Windows, Mac এবং Linux প্ল্যাটফর্মে ডিপ্লয় করতে পারেন। JavaFX অ্যাপ্লিকেশনকে Native Installer তৈরি করার জন্য সাধারণত jlink, javapackager, অথবা jpackage ব্যবহার করা হয়। বর্তমানে, jpackage টুলটি Java 14 থেকে সহায়তা প্রদান করছে এবং এটি নতুন Java অ্যাপ্লিকেশনের জন্য একটি প্রচলিত উপায়।
1. JavaFX অ্যাপ্লিকেশনটি তৈরি করা
প্রথমে JavaFX অ্যাপ্লিকেশনটি তৈরি করা দরকার। উদাহরণস্বরূপ, একটি সহজ JavaFX অ্যাপ্লিকেশন যা একটি Button এবং Label ব্যবহার করছে:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MyJavaFXApp extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Say 'Hello World'");
btn.setOnAction(event -> System.out.println("Hello World"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello JavaFX!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
2. jpackage ব্যবহার করে Native Installer তৈরি করা
jpackage হল Java 14 এর একটি টুল যা Java অ্যাপ্লিকেশনকে Native Installer (.exe, .dmg, .deb ইত্যাদি) ফর্ম্যাটে রূপান্তরিত করতে ব্যবহৃত হয়। এটি আপনাকে প্ল্যাটফর্ম নির্দিষ্ট ইন্সটলার তৈরি করতে সাহায্য করে।
2.1 Windows-এ Native Installer তৈরি করা
Windows এর জন্য .exe ইন্সটলার তৈরি করতে, আপনাকে jpackage ব্যবহার করতে হবে। এটি চালানোর জন্য নিম্নলিখিত কমান্ড ব্যবহার করা যাবে:
jpackage --type exe --input path_to_classes_or_jar --name MyJavaFXApp --main-jar MyJavaFXApp.jar --main-class MyJavaFXApp --java-options "-Xmx512m" --icon path_to_icon.ico
এখানে:
--input: Java ক্লাস বা JAR ফাইলের পাথ।--name: অ্যাপ্লিকেশনের নাম।--main-jar: মূল JAR ফাইলের নাম।--main-class: অ্যাপ্লিকেশনের মেইন ক্লাসের নাম।--java-options: Java VM অপশন (যেমন মেমরি সীমা)।--icon: আইকনের পাথ (ঐচ্ছিক, তবে UI এর জন্য উপকারী)।
2.2 MacOS-এ Native Installer তৈরি করা
MacOS এর জন্য .dmg ফাইল তৈরি করতে:
jpackage --type dmg --input path_to_classes_or_jar --name MyJavaFXApp --main-jar MyJavaFXApp.jar --main-class MyJavaFXApp --icon path_to_icon.icns
এখানে .icns ফাইলটি MacOS এর জন্য আইকন ফাইল।
2.3 Linux-এ Native Installer তৈরি করা
Linux এর জন্য .deb প্যাকেজ তৈরি করতে:
jpackage --type deb --input path_to_classes_or_jar --name MyJavaFXApp --main-jar MyJavaFXApp.jar --main-class MyJavaFXApp --java-options "-Xmx512m"
এখানে --type deb ডেবিয়ান ভিত্তিক সিস্টেমের জন্য প্যাকেজ তৈরি করবে, যেমন Ubuntu।
3. প্রয়োজনীয় টুলস
- JDK: আপনাকে JDK 14 বা এর পরবর্তী ভার্সন ইনস্টল করতে হবে।
- JavaFX SDK: JavaFX লাইব্রেরি আপনার প্রকল্পে যোগ করতে হবে।
jlinkবাjpackageব্যবহারের জন্য JavaFX SDK ইনস্টল করা গুরুত্বপূর্ণ।
4. নোটস:
jpackageব্যবহারের জন্য JavaFX-কে মডুলারভাবে প্যাকেজ করতে হতে পারে। এজন্য আপনাকে JavaFX মডিউলগুলি ম্যানেজ করা প্রয়োজন।- JavaFX অ্যাপ্লিকেশন তৈরি করার সময় যদি কোনো external library থাকে, তবে সেগুলিও সঠিকভাবে প্যাকেজে অন্তর্ভুক্ত করতে হবে।
JavaFX অ্যাপ্লিকেশনকে Native Installer হিসেবে প্যাকেজ করার জন্য jpackage খুবই কার্যকর একটি টুল। এটি Windows, Mac, এবং Linux-এ Native installers তৈরি করতে সাহায্য করে, যা আপনার অ্যাপ্লিকেশনকে আরো প্রফেশনাল এবং ব্যবহারকারী-বান্ধব করে তোলে।
Read more