ฉันมีไฟล์ jar 3 ไฟล์และไฟล์. java ที่ขึ้นอยู่กับไฟล์ jar เหล่านี้ ฉันจะรวบรวมไฟล์. java ด้วยไฟล์ jar เหล่านี้โดยใช้พรอมต์คำสั่งได้อย่างไร
java -cp ".;magic.jar" Foo
ก็โอเคjava Foo -cp ".;magic.jar"
ไม่ใช่
ฉันมีไฟล์ jar 3 ไฟล์และไฟล์. java ที่ขึ้นอยู่กับไฟล์ jar เหล่านี้ ฉันจะรวบรวมไฟล์. java ด้วยไฟล์ jar เหล่านี้โดยใช้พรอมต์คำสั่งได้อย่างไร
java -cp ".;magic.jar" Foo
ก็โอเคjava Foo -cp ".;magic.jar"
ไม่ใช่
คำตอบ:
คุณสามารถรวมไฟล์ 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
คุณสามารถรวมไหทุกครั้งที่คุณคอมไพล์โดยตั้งค่าตัวแปรสภาพแวดล้อม "CLASSPATH" ให้ถูกต้อง ตัวแปรสภาพแวดล้อมจะเก็บพา ธ ที่ไหและคลาสที่ต้องใช้สำหรับการคอมไพล์ / เรียกใช้ไฟล์ java ใด ๆ คุณจะไม่ต้องรวมไหแยกกันทุกครั้งที่คุณรวบรวมไฟล์
เครื่องจักรที่แตกต่างกันมีวิธีการที่แตกต่างกันในการตั้งค่า classpath เป็นตัวแปรสภาพแวดล้อม คำสั่งสำหรับ Windows, Linux และอื่น ๆ นั้นแตกต่างกัน
คุณสามารถดูรายละเอียดเพิ่มเติมได้ในบล็อกนี้
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
ทำงานให้ฉัน ฉันใช้ mac ฉันอ่านที่ไหนสักแห่งว่า ':' ใช้สำหรับยูนิกซ์
.:
ทำอะไร? ขออภัยหากเป็นคำถามที่โง่ แต่ไม่ชัดเจนสำหรับฉัน
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
โปรดลองบน Linux
javac -cp jarfile source file
ตัวอย่าง: -
javac -cp .:/jars/* com/template/*.java
.:/jars
แทนที่ด้วยไดเรกทอรีที่ไฟล์ JAR javac: invalid flag: /location/of/first/jar/file.jar
ฉันจะอยู่ที่ฉันได้รับข้อความแสดงข้อผิดพลาด
ไวยากรณ์จะทำงานบนคำสั่ง windows dos:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
ลองเพิ่มไฟล์ jar การพึ่งพาทั้งหมดในพา ธ คลาสของคุณผ่านการตั้งค่าตัวแปรสภาพแวดล้อมหรือใช้ขั้นตอนด้านล่าง:
ตั้งค่า classpath สำหรับไฟล์ jar การพึ่งพาของคุณดังที่แสดงด้านล่าง:
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;
ตอนนี้คุณสามารถรวบรวมไฟล์ java ของคุณได้ (คำสั่งjavac YourJavaFile.java
)
หวังว่านี่จะช่วยแก้ปัญหาการพึ่งพาของคุณได้
ดังต่อไปนี้เป็นขั้นตอน
คัดลอก jar ทั้งหมดและไฟล์. java ของคุณไว้ในโฟลเดอร์เดียวกัน (จะง่ายต่อการเอ่ยชื่อไฟล์แทนที่จะพูดถึงเส้นทางยาวแม้ว่าคุณจะสามารถเก็บ jar และ. 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
และ ** run 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 .:jars/jar1:jars/jar2:jars/jar3 com/source/*.java
คุณต้องระบุการอ้างอิงในเวลาคอมไพล์เช่นเดียวกับรันไทม์
ในการคอมไพล์ให้ใช้รูปแบบนี้
javac -cp "*.jar;classfile_path" filename.java
ตัวอย่าง:
javac -cp "ojdbc6.jar;c:\programs" Main.java
บางครั้งทำการเปลี่ยนแปลงต่อไปนี้:
java -cp ".;%CLASSPATH%" classfilename
หมายเหตุ: บน Windows สำหรับลินุกซ์ให้ใช้$CLASSPATH
แทน
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
หากคุณใช้ Ubuntu:
/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
หมายเหตุ: โปรดดูตำแหน่งไฟล์และชื่อแพ็กเกจ
สำหรับ windows