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

如何在Java中确定jar文件的包名,java,import,Java,Import,我刚刚被推上了java的船 对于现有的jar文件log4j.jar(),我将其放在./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 .\cl

我刚刚被推上了java的船

对于现有的jar文件log4j.jar(),我将其放在./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

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

-cp '.;.\lib\log4j.jar'
应该是:

-cp .;.\lib\log4j.jar

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

package yyyyjmsxxx.zzzzexamplexxx;

没有Jar文件的包名这样的东西。您最后一个问题是,没有。这里有太多的混乱需要解决。@EJP:这是有效的:
import org.apache.log4j.Logger