javac:包org.apache.poi.hssf.usermodel不存在

时间:2010-11-17 21:56:33

标签: java apache-poi poi-hssf

我有一个程序试图使用/ usr / share / java目录中jakarta-poi-3.0.2.jar的类:

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错误。

我的classpath上有/ usr / share / java。我错过了什么吗?

4 个答案:

答案 0 :(得分:3)

类路径上的

/ usr / share / java没有引入/ usr / share / java中的所有jar。

尝试将/usr/share/java/jakarta-poi-3.0.2.jar放在类路径中。

答案 1 :(得分:1)

首先,您可能想要升级 - Apache POI 3.0.2已超过3年,从那时起已经有a lot of fixes

至于您的问题,您需要在类路径中单独列出每个jar文件,或者您需要将所有jar放入jre lib目录(内容自动包含在内)。后者通常不建议使用......

你不能只在列表路径中列出一个目录,并从中拾取jar,抱歉。只从类路径目录加载单个类文件,jars不会是

答案 2 :(得分:0)

Bootstrap类路径是$ JAVA_HOME / lib 但对于用户应用程序,使用用户类路径设置-classpath参数,如下所示: java -classpath /usr/share/java/myclasses.jar

答案 3 :(得分:0)

以下解决方案帮助了我

类路径是Java运行时环境搜索类和其他资源文件的路径。可以在调用JDK工具(首选方法)时使用-classpath选项或通过设置CLASSPATH环境变量来设置类搜索路径(更常见的是较短名称“类路径”)。 -classpath选项是首选,因为您可以为每个应用程序单独设置它,而不会影响其他应用程序,也不会修改其值的其他应用程序。

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

-OR -

C:>设置CLASSPATH = classpath1; classpath2 ...

其中:

<强> sdkTool 命令行工具,例如java,javac,javadoc或apt。有关列表,请参阅JDK工具。

classpath1; classpath2 .jar,.zip或.class文件的类路径。每个类路径应以文件名或目录结尾,具体取决于您将类路径设置为: 对于包含.class文件的.jar或.zip文件,类路径以.zip或.jar文件的名称结尾。 对于未命名包中的.class文件,类路径以包含.class文件的目录结束。 对于命名包中的.class文件,类路径以包含“root”包的目录(完整包名中的第一个包)结束。 多个路径条目由分号分隔。使用set命令,从等号(=)周围省略空格很重要。

默认类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项会覆盖该缺省值,因此如果要在搜索路径中包含当前目录,则必须包含“。”。在新设置中。

既不是目录也不是归档(.zip或.jar文件)或*的类路径条目将被忽略。

参考:http://download.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html