2010-11-17 577 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被拾取,抱歉。只有單獨的類文件將從類路徑目錄加載,罐子不會是