2

我有一个程序试图使用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

4 回答 4

3

类路径上的 /usr/share/java 不会引入 /usr/share/java 中的所有 jar。

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

于 2010-11-17T22:01:43.953 回答
1

首先,您可能想要升级 - Apache POI 3.0.2 已经超过 3 年了,从那时起已经有很多修复了!

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

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

于 2011-05-29T20:21:29.973 回答
0

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

于 2010-11-17T22:00:39.000 回答
0

以下解决方案帮助了我

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

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

-或者-

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

在哪里:

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

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

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

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

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

于 2011-05-27T18:05:32.240 回答