3 jar dosyam ve bu jar dosyalarına bağlı olan bir .java dosyam var. .Java dosyasını bir komut istemi kullanarak bu jar dosyalarıyla nasıl derlerim?
java -cp ".;magic.jar" Foo
tamam java Foo -cp ".;magic.jar"
değil.
3 jar dosyam ve bu jar dosyalarına bağlı olan bir .java dosyam var. .Java dosyasını bir komut istemi kullanarak bu jar dosyalarıyla nasıl derlerim?
java -cp ".;magic.jar" Foo
tamam java Foo -cp ".;magic.jar"
değil.
Yanıtlar:
Jar dosyalarınızı "-cp" seçeneğini kullanarak "javac" komutuna dahil edebilirsiniz.
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
"-Cp" yerine "-classpath" da kullanabilirsiniz.
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
"CLASSPATH" ortam değişkenini doğru şekilde ayarlayarak her derleme yaptığınızda kavanozları dahil edebilirsiniz. Ortam değişkeni, herhangi bir java dosyasını derlemek / yürütmek için kullanılması gereken kavanozların ve sınıfların bulunduğu yolu depolar. Dosyanızı her derlediğinizde kavanozları tek tek eklemeniz gerekmez.
Sınıf yolunu bir ortam değişkeni olarak ayarlamak için farklı makinelerin farklı yöntemleri vardır. Windows, Linux vb. İçin komutlar farklıdır.
Bu blogda daha fazla ayrıntı bulabilirsiniz .
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
benim için çalıştı. Mac kullanıyordum. Bir yerlerde ':' unix için kullanıldığını okudum.
.:
mi? aptalca bir soruysa özür dilerim, ama bana açık değil.
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Lütfen Linux'ta deneyin
javac -cp jarfile source file
MİSAL :-
javac -cp .:/jars/* com/template/*.java
.:/jars
yerine JAR dosyalarımın bulunduğu dizini denediğimde , hata mesajını alıyorum javac: invalid flag: /location/of/first/jar/file.jar
.
Sözdizimi, Windows dos komutu üzerinde çalışacaktır:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
Ortam değişkeni ayarları aracılığıyla tüm bağımlılık jar dosyalarını sınıf yolunuza eklemeyi deneyin veya aşağıdaki adımları kullanın:
Bağımlılık jar dosyalarınız için sınıf yolunu aşağıda gösterildiği gibi ayarlayın:
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;
Şimdi java dosyanızı derleyebilirsiniz. (komut: javac YourJavaFile.java
)
Bunun bağımlılık sorununuzu çözeceğini umuyoruz.
Aşağıdakiler adımlar,
Tüm kavanozları ve .java dosyanızı aynı klasöre kopyalayın (Uzun yoldan bahsetmek yerine dosya adlarından bahsetmek daha kolay olacaktır. Yine de jar ve .java'yı ayrı klasörlerde tutabilirsiniz).
Derlemek için,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
Yürütmek için
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
Umarım bu yardımcı olur!
Bu .class dosyasını oluşturacaktır:
javac -classpath "[jarname with specified path]" [java filename]
Bu, sınıf dosyasını çalıştıracaktır:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
istiyorum ** ve ** çalıştırjava -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
Derleme zamanında ve çalışma zamanında bağımlılıkları belirtmeniz gerekir.
Derlemek için bu biçimi kullanın
javac -cp "*.jar;classfile_path" filename.java
Misal:
javac -cp "ojdbc6.jar;c:\programs" Main.java
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
Ubuntu kullanıyorsanız:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
Klasör konumuna git (Paket yapısı dışında)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
Not: Lütfen dosya konumlarına ve paket adlarına bakın
Pencereler için