如何在Java中确定jar文件的包名
我刚刚被推上了java的船 对于现有的jar文件log4j.jar(),我将其放在./lib子文件夹下,我的java源文件MyDemo.java放在./jms/example文件夹下,我使用jms.example作为包名,并在java文件中导入log4j类:如何在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
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但是如果我省略了org.apache.log4j的任何部分,它就不起作用;如何知道或确定Logger类的包名?我认为这是由jar文件中的文件路径决定的。关于我前面的问题:是的,它的真实包名必须与jar文件中的路径相同。