У мене є три jar файли та .java файл, який залежить від цих файлів jar. Як скомпілювати файл .java з цими файлами jar за допомогою командного рядка?
java -cp ".;magic.jar" Foo
це нормально java Foo -cp ".;magic.jar"
, ні.
У мене є три jar файли та .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. Я десь прочитав, що ':' використовується для unix.
.:
? вибачте, якщо це німе питання, але це мені не очевидно.
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-залежності до шляху вашого класу через налаштування змінної середовища або скористайтеся наведеними нижче кроками:
Встановіть класний шлях для ваших файлів 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
)
Сподіваємось, це вирішить вашу проблему залежності.
Наступні етапи -
Скопіюйте всі банки та файл .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 "*.jar;classfile_path" filename.java
Приклад:
javac -cp "ojdbc6.jar;c:\programs" Main.java
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
Примітка. Будь ласка, перегляньте розташування файлів та назви пакетів