2010-11-17 576 views
2

我有一个程序试图以我的/ usr /共享/ java目录使用来自jakarta-poi-3.0.2.jar类:的javac:包org.apache.poi.hssf.usermodel不存在

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。我错过了什么吗?

+0

你是如何编译的? – CoolBeans 2010-11-17 22:00:22

+0

我的程序名称是SSLoader.java。我使用'$ javac SSLoader.java'进行编译,导致这些错误。 – Max 2010-11-17 22:09:54

回答

2

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

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

+0

这个工作,但它似乎很愚蠢必须做到这一点每个.jar我可能需要使用。有没有办法让java检查这个文件夹中的所有.jar文件? – Max 2010-11-17 22:06:13

+0

你总是必须明确地添加jar,但是IDE将会更容易。 – Kdeveloper 2010-11-17 22:41:17

+1

对于Java 6,是的。请参阅http://download.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html中的“了解类路径通配符 ”部分。 – 2010-11-17 22:46:27

0

引导类路径是$ JAVA_HOME/lib目录 但对于用户应用程序使用用户类路径设置-classpath参数那样: 的java -classpath /usr/share/java/myclasses.jar

0

以下解决方案帮助我

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

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

- 或 -

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

其中:

sdk工具 一个命令行工具,如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

1

首先,你可能想升级 - Apache的POI 3.0.2超过3岁,并且已经出现a lot of fixes自那以后!

至于你的问题,你需要在你的类路径中单独列出每个jar文件,或者你需要将所有的jar放入jre lib目录(内容是自动包含的)。虽然后者通常不被推荐...

你不能仅仅在类路径中列出一个目录,并且让它内部的jar被拾取,抱歉。只有单独的类文件将从类路径目录加载,罐子不会是