Почему classpath = / tomcat_lib / не работает - PullRequest
1 голос
/ 03 мая 2011

Привет, ребята,

В каталоге / tomcat_lib есть файл abc.jar. Мне нужно использовать это в моем def.java

Я устал

javac -classpath / tomcat_lib / -d ../classes def.java

но это не работает

Но если это сработает, если я использую

javac -classpath /tomcat_lib/abc.jar -д ....

Может кто-нибудь помочь объяснить это?

1 Ответ

6 голосов
/ 03 мая 2011

Чтобы добавить jar в ваш путь к классу, вам нужно указать путь до файла .jar включительно.

Цитирование официальной документации по Java SE 6 на Oracle.com :

Каждый [элемент в вашем classpath] должен заканчивается именем файла или каталогом в зависимости от того, что вы устанавливаете путь к классу:

  • Для файла .jar или .zip который содержит файлы .class, класс Путь заканчивается именем .zip или .jar файл.
  • Для файлов .class в безымянный пакет, путь к классу заканчивается с каталогом, который содержит .class файлы.
  • Для файлов .class в именованный пакет, путь к классу заканчивается с каталогом, который содержит «корневой» пакет (первый пакет в полное название пакета).

... и из раздела «Папки и архивные файлы» той же документации :

Когда классы хранятся в каталоге (папка), как c: \ java \ MyClasses \ utility \ myapp, затем запись пути к классу указывает на каталог, содержащий первый элемент имени пакета. (в этом case, C: \ java \ MyClasses, так как имя пакета - utility.myapp.)

Но когда классы хранятся в архивный файл (файл .zip или .jar) Запись пути к классу - это путь к включая файл .zip или .jar.

...