আমার কাছে 3 জার ফাইল এবং একটি জাভা ফাইল রয়েছে যা এই জার ফাইলগুলির উপর নির্ভর করে। কমান্ড প্রম্পট ব্যবহার করে এই জার ফাইলগুলির সাথে আমি জাভা ফাইলটি কীভাবে সংকলন করব?
java -cp ".;magic.jar" Foo
ঠিক আছে java Foo -cp ".;magic.jar"
না।
আমার কাছে 3 জার ফাইল এবং একটি জাভা ফাইল রয়েছে যা এই জার ফাইলগুলির উপর নির্ভর করে। কমান্ড প্রম্পট ব্যবহার করে এই জার ফাইলগুলির সাথে আমি জাভা ফাইলটি কীভাবে সংকলন করব?
java -cp ".;magic.jar" Foo
ঠিক আছে java Foo -cp ".;magic.jar"
না।
উত্তর:
আপনি "জ্যাভাক" কমান্ডে "-cp" বিকল্পটি ব্যবহার করে আপনার জার ফাইলগুলি অন্তর্ভুক্ত করতে পারেন।
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
"-Cp" এর পরিবর্তে আপনি "-ক্লাসপাথ" ব্যবহার করতে পারেন
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
পরিবেশের পরিবর্তনশীল "CLASSPATH" সঠিকভাবে সেট করে আপনি যতবার সংকলন করেছেন প্রতিটি সময় আপনি অন্তর্ভুক্ত করতে পারেন। পরিবেশের ভেরিয়েবল সেই পাথটি সংরক্ষণ করবে যেখানে জার ফাইল এবং ক্লাসগুলি যে কোনও জাভা ফাইল সংকলন / সম্পাদন করতে ব্যবহার করা প্রয়োজন। আপনি প্রতিবার ফাইলটি সংকলন করার সময় আপনাকে আলাদাভাবে জারগুলি অন্তর্ভুক্ত করতে হবে না।
ক্লাসপথটিকে পরিবেশের পরিবর্তনশীল হিসাবে সেট করার জন্য বিভিন্ন মেশিনের বিভিন্ন পদ্ধতি রয়েছে। উইন্ডোজ, লিনাক্স ইত্যাদির আদেশগুলি আলাদা।
আপনি এই ব্লগে আরও বিশদ জানতে পারেন ।
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
আমার জন্য কাজ। আমি ম্যাক ব্যবহার করছিলাম। আমি কোথাও পড়েছি যে ':' ইউনিক্সের জন্য ব্যবহৃত হয়।
.:
? দুঃখিত যদি এটি বোবা প্রশ্ন হয় তবে এটি আমার কাছে সুস্পষ্ট নয়।
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
লিনাক্স চেষ্টা করুন
javac -cp jarfile source file
উদাহরণ: -
javac -cp .:/jars/* com/template/*.java
.:/jars
আমার জেআর ফাইলগুলি যে ডিরেক্টরিটিতে রয়েছে সেটির পরিবর্তে আমি ত্রুটি বার্তাটি পাই javac: invalid flag: /location/of/first/jar/file.jar
।
সিনট্যাক্স উইন্ডোজ ডস কমান্ডে কাজ করবে:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
পরিবেশ পরিবর্তনশীল সেটিংসের মাধ্যমে আপনার শ্রেণীর পথে সমস্ত নির্ভরতা জার ফাইল যুক্ত করার চেষ্টা করুন বা নীচের পদক্ষেপগুলি ব্যবহার করুন:
আপনার নির্ভরতা জার ফাইলগুলির জন্য শ্রেণিপথটি নীচের মতো দেখায়:
set classpath=C:\Users\sarath_sivan\Desktop\jars\servlet-api.jar; C:\Users\sarath_sivan\Desktop\jars\spring-jdbc-3.0.2.RELEASE; C:\Users\sarath_sivan\Desktop\jars\spring-aop-3.0.2.RELEASE;
এখন, আপনি আপনার জাভা ফাইলটি সংকলন করতে পারেন। (আদেশ javac YourJavaFile.java
:)
আশা করি এটি আপনার নির্ভরতা সমস্যার সমাধান করবে।
নিম্নলিখিত পদক্ষেপগুলি হল,
সমস্ত জার এবং আপনার। জাভা ফাইলকে একই ফোল্ডারে অনুলিপি করুন (দীর্ঘ পথের উল্লেখ না করে ফাইলের নাম উল্লেখ করা সহজ হবে Though যদিও আপনি আলাদা ফোল্ডারে জার এবং। জাভা রাখতে পারেন)।
সংকলন করতে,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
চালানো,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
আশা করি এটা কাজে লাগবে!
এটি .class ফাইল তৈরি করবে:
javac -classpath "[jarname with specified path]" [java filename]
এটি ক্লাস ফাইলটি কার্যকর করবে:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
এবং ** রান সংকলন করতে চাইjava -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java also i tried java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile
রানটাইমের পাশাপাশি সংকলন সময়ে আপনাকে নির্ভরতাগুলি নির্দিষ্ট করতে হবে
সংকলন করতে এই বিন্যাসটি ব্যবহার করুন
javac -cp "*.jar;classfile_path" filename.java
উদাহরণ:
javac -cp "ojdbc6.jar;c:\programs" Main.java
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
আপনি যদি উবুন্টু ব্যবহার করেন:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
ফোল্ডারের অবস্থানটিতে যান (প্যাকেজ কাঠামোর বাইরে)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
দ্রষ্টব্য: দয়া করে ফাইলের অবস্থান এবং প্যাকেজের নামগুলি দেখুন