У меня есть 3 файла jar и файл .java, который зависит от этих файлов jar. Как мне скомпилировать файл .java с этими файлами jar с помощью командной строки?
java -cp ".;magic.jar" Foo
нормально java Foo -cp ".;magic.jar"
нет.
У меня есть 3 файла 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
Вы можете включать jar-файлы каждый раз при компиляции, правильно установив переменную среды «CLASSPATH». Переменная среды будет хранить путь, по которому jar-файлы и классы должны использоваться для компиляции / выполнения любого java-файла. Вам не нужно будет включать jar-файлы по отдельности каждый раз при компиляции файла.
На разных машинах есть разные методы установки пути к классам в качестве переменной среды. Команды для 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
)
Надеюсь, это решит вашу проблему с зависимостью.
Ниже приведены шаги,
Скопируйте все 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
и ** запустить 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
Примечание. Просмотрите расположение файлов и имена пакетов.
Для окон