javac: пакет org.apache.poi.hssf.usermodel не существует - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть программа, пытающаяся использовать классы из jakarta-poi-3.0.2.jar в моем каталоге / usr / share / java:

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
etc...

При компиляции я получаю ошибку package org.apache.poi.hssf.usermodel does not exist для каждогоимпорт выше.

У меня есть / usr / share / java на моем пути к классам.Я что-то пропустил?

Ответы [ 4 ]

3 голосов
/ 18 ноября 2010

/ usr / share / java на пути к классам не содержит всех jar-файлов в /usr/share/java.

Попробуйте поместить /usr/share/java/jakarta-poi-3.0.2.jarвместо этого в вашем classpath.

1 голос
/ 30 мая 2011

Прежде всего, вы можете захотеть обновить - Apache POI 3.0.2 более 3 лет, и с тех пор было исправлено

Что касается вашей проблемыВам нужно либо перечислить каждый файл jar по отдельности на вашем пути к классам, либо поместить все ваши файлы jar в каталог jre lib (содержимое которого автоматически включается).Последнее, как правило, не рекомендуется ...

Вы не можете просто перечислить каталог на пути к классам, и поднять изнутри его фляги, извините.Из каталога classpath будут загружены только отдельные файлы классов, jars не будет

0 голосов
/ 27 мая 2011

Мне помогло следующее решение

Путь к классам - это путь, который среда выполнения Java ищет для классов и других файлов ресурсов. Путь поиска класса (более известный под более коротким именем «путь к классу») можно задать с помощью параметра -classpath при вызове инструмента JDK (предпочтительный метод) или путем установки переменной среды CLASSPATH. Параметр -classpath является предпочтительным, поскольку вы можете установить его отдельно для каждого приложения, не затрагивая другие приложения и не изменяя его значение другими приложениями.

C:> sdkTool -classpath classpath1; classpath2 ...

-или-

C:> set CLASSPATH = classpath1; classpath2 ...

где:

sdkTool Инструмент командной строки, такой как java, javac, javadoc или apt. Список см. В разделе Инструменты JDK.

classpath1; classpath2 Пути классов к файлам .jar, .zip или .class. Каждый путь к классу должен заканчиваться именем файла или каталога в зависимости от того, для чего вы устанавливаете путь к классу: Для файла .jar или .zip, содержащего файлы .class, путь к классу заканчивается именем файла .zip или .jar. Для файлов .class в безымянном пакете путь к классу заканчивается каталогом, содержащим файлы .class. Для файлов .class в именованном пакете путь к классу заканчивается каталогом, в котором находится «корневой» пакет (первый пакет с полным именем пакета). Несколько записей пути разделяются точкой с запятой. С помощью команды set важно опустить пробелы вокруг знака равенства (=).

Путь к классу по умолчанию - текущий каталог. Установка переменной CLASSPATH или использование параметра командной строки -classpath переопределяет это значение по умолчанию, поэтому, если вы хотите включить текущий каталог в путь поиска, вы должны включить «.» в новых настройках.

Записи пути к классам, которые не являются ни каталогами, ни архивами (.zip или .jar файлами), ни * игнорируются.

Ссылка: http://download.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html

0 голосов
/ 18 ноября 2010

Путь к классу начальной загрузки равен $ JAVA_HOME / lib но для пользовательских приложений используйте пользовательские classpaths, установив параметр -classpath следующим образом: java -classpath /usr/share/java/myclasses.jar

...