我剛剛被推上了Java。如何在Java中確定jar文件的包名稱
對於現有的jar文件log4j.jar(http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip),我把它放在./lib子文件夾下,我的java源文件MyDemo.java位於./jms/example文件夾下,我使用jms.example作爲包在我的Java文件名和進口log4j的類:
package jms.example;
import org.apache.log4j.*;
當我編譯使用下面的命令,我得到了錯誤:
c:\JDK\bin\javac.exe -cp '.;.\lib\log4j.jar' -d .\classes -g .\jms\example\MyDemo.java
錯誤:無法找到符號 私人最終記錄儀記錄;
上述代碼有什麼問題?我想知道: *包名與文件路徑有關嗎?例如,我把我的java文件在jms/example下,這是我必須將包命名爲jms.example的原因嗎?
當我提取其他由第三方提供的jar文件時,類文件的路徑是jms/example,第三方示例代碼使用jms.example作爲包名稱,並且它與類路徑jms/example一致,他們必須保持一致嗎?
- 當提取log4j.jar,路徑的類文件是組織/阿帕奇/ log4j的/,那麼我應該有使用「導入org.apache.log4j。」導入類?如果我仍然使用jms.example作爲我的包名稱,那麼導入會將它加到類路徑上,即它實際上變成了jms.example.org.apache.log4j。?
有作爲一個JAR文件的包名沒有這樣的事。回答你最後一個問題,不。這裏有太多的困惑需要解決。 – EJP
@EJP: 這工作: '進口org.apache.log4j.Logger;' 但是,如果我省略org.apache.log4j的任何部分,這是行不通的; 如何知道或確定記錄器類的包名稱?我認爲這是由jar文件內的文件路徑決定的。 –
關於我以前的問題:是的,它是真正的包名稱必須與它在jar文件中的路徑相同。 –