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

javac:package org.apache.poi.hssf.usermodel不存在,java,apache-poi,poi-hssf,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... 编译时,我得到一个包org.apache.poi.hssf.userm

我有一个程序试图使用我的/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...
编译时,我得到一个
包org.apache.poi.hssf.usermodel不存在上述每个导入的
错误


我的类路径上有/usr/share/java。我还遗漏了什么吗?

引导类路径是$JAVA\u HOME/lib 但对于用户应用程序,请使用用户类路径设置-classpath参数,如下所示:
java-classpath/usr/share/java/myclasses.jar

/usr/share/java在类路径上并没有将所有jar引入/usr/share/java


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

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

C:>sdkTool-classpath classpath1;类路径2

-或-

C:>设置CLASSPATH=classpath1;类路径2

其中:

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

首先,您可能需要升级—Apache POI 3.0.2已经有3年多的历史了,从那时起就有了

至于您的问题,您要么需要在类路径上单独列出每个jar文件,要么需要将所有jar放在jre lib目录中(内容是自动包含的)。不过,一般不推荐使用后者


抱歉,您不能只在类路径上列出一个目录,然后从中提取JAR。只有单独的类文件将从类路径目录加载,jar不会

这是可行的,但对我可能需要使用的每个.jar都这样做似乎很愚蠢。java有没有办法检查这个文件夹中的所有.jar?您总是需要显式地添加jar,但是IDE会使这更容易。对于java 6,是的。请参阅中的“理解类路径通配符”部分。我的程序名为SSLoader.java。我使用
$javacssloader.java
编译,导致了这些错误。