मेरे पास 3 जार फाइलें और एक .java फाइल है जो इन जार फाइलों पर निर्भर करती है। मैं एक कमांड प्रॉम्प्ट का उपयोग करके इन जार फ़ाइलों के साथ .java फ़ाइल को कैसे संकलित करता हूं?
java -cp ".;magic.jar" Foo
ठीक java Foo -cp ".;magic.jar"
है ना।
मेरे पास 3 जार फाइलें और एक .java फाइल है जो इन जार फाइलों पर निर्भर करती है। मैं एक कमांड प्रॉम्प्ट का उपयोग करके इन जार फ़ाइलों के साथ .java फ़ाइल को कैसे संकलित करता हूं?
java -cp ".;magic.jar" Foo
ठीक java Foo -cp ".;magic.jar"
है ना।
जवाबों:
आप "javac" कमांड में "-cp" विकल्प का उपयोग करके अपनी जार फ़ाइलों को शामिल कर सकते हैं।
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
"-Cp" के बजाय आप "-classpath" का भी उपयोग कर सकते हैं
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
हर बार जब आप संकलित करते हैं, तो आप हर बार जार को शामिल कर सकते हैं। पर्यावरण चर पथ को संस्थापित करेगा जहाँ जार और कक्षाएं किसी भी जावा फ़ाइल को संकलित / निष्पादित करने के लिए उपयोग करने की आवश्यकता होती है। हर बार जब आप फ़ाइल संकलित करते हैं तो आपको व्यक्तिगत रूप से जार को शामिल नहीं करना होगा।
अलग-अलग मशीनों में क्लासपैथ को पर्यावरण चर के रूप में सेट करने के लिए अलग-अलग तरीके हैं। विंडोज, लिनक्स, आदि के लिए कमांड अलग हैं।
आप इस ब्लॉग में अधिक जानकारी पा सकते हैं ।
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
उस निर्देशिका के साथ जिसमें मेरी JAR फाइलें स्थित हैं, मुझे त्रुटि संदेश मिलता है javac: invalid flag: /location/of/first/jar/file.jar
।
सिंटैक्स विंडोज़ डॉस कमांड पर काम करेगा:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
पर्यावरण चर सेटिंग्स के माध्यम से अपने वर्ग पथ में सभी निर्भरता जार फ़ाइलों को जोड़ने या नीचे दिए चरणों का उपयोग करने का प्रयास करें:
नीचे दिखाए अनुसार अपनी निर्भरता जार फ़ाइलों के लिए classpath सेट करें:
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
)
आशा है कि यह आपकी निर्भरता के मुद्दे को हल करेगा।
अनुगमन कदम हैं,
सभी जार और अपने .java फ़ाइल को एक ही फ़ोल्डर में कॉपी करें (लंबे पथ का उल्लेख करने के बजाय फ़ाइल नामों का उल्लेख करना आसान होगा। हालाँकि आप जार और .java को अलग-अलग फ़ोल्डरों में रख सकते हैं)।
संकलन करना,
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
नोट: कृपया फ़ाइल स्थान और पैकेज नाम देखें