#java #compilation #classpath
#java #Сборник #classpath
Вопрос:
ПРИВЕТ, ребята,
Существует abc.jar в /tomcat_lib. Мне нужно использовать это в моем def.java
Я устал
javac -classpath /tomcat_lib/ -d ../классы def.java
но это не работает
Но если это сработает, если я использую
javac -classpath /tomcat_lib/abc.jar -d ….
Кто-нибудь может помочь объяснить это?
Комментарии:
1. Если вы хотите сделать это для группы файлов jar, ознакомьтесь с разделом «Понимание подстановочных знаков пути к классу» здесь: download.oracle.com/javase/6/docs/technotes/tools/solaris /…
Ответ №1:
Чтобы добавить jar к вашему classpath, вам нужно указать путь до файла .jar включительно.
Цитирую официальную документацию Java SE 6 по адресу Oracle.com :
Каждый [элемент в вашем classpath] должен заканчиваться именем файла или каталогом в зависимости от того, к чему вы задаете путь к классу:
- Для файла .jar или .zip, который содержит файлы .class, путь к классу заканчивается именем файла .zip или .jar.
- Для файлов .class в неназванном пакете путь к классу заканчивается каталогом, содержащим файлы .class.
- Для файлов .class в именованном пакете путь к классу заканчивается каталогом, который содержит «корневой» пакет (первый пакет с полным именем пакета).
…и из раздела «Папки и архивные файлы» той же документации:
Когда классы хранятся в каталоге (папке), например c:javaMyClassesutilitymyapp тогда путь к классу указывает на каталог, который содержит первый элемент имени пакета. (в этом случае, C:javaMyClasses , поскольку имя пакета utility.myapp.)
Но когда классы хранятся в архивном файле (zip илиjar-файле), запись пути к классу представляет собой путь к zip или jar-файлу, включающий этот файл.
Комментарии:
1. Идеальный. У меня был тот же вопрос. Поиск в StackOverflow намного лучше, чем публикация нового вопроса.