如何在Java中确定jar文件的包名

时间:2015-04-22 01:03:48

标签: java import

我刚刚被推上了java。

对于现有的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时,其类文件的路径是org / apache / log4j /,那么我是否应该使用“import org.apache.log4j。”来导入类?如果我仍然使用jms.example作为我的包名,那么导入会将它预先添加到类路径中,即它实际上变为jms.example.org.apache.log4j。

2 个答案:

答案 0 :(得分:1)

路径不能用引号括起来;也就是说,它在命令中是错误的:

-cp '.;.\lib\log4j.jar'

应该是:

-cp .;.\lib\log4j.jar

答案 1 :(得分:0)

关于这个问题:
 包名是否与文件路径相关?例如,我把我的java文件放在jms / example下,这是我必须将包命名为jms.example的原因吗?
不,您可以使用任何包名称,例如:

package yyyyjmsxxx.zzzzexamplexxx;