我有一个有静态最终方法的类。[说A,B,C]。 C调用另一个类D [D的包在C中导入] maven程序集jar [说M.jar]我没有包D。在运行时,当我尝试在类路径中调用A有M.jar时,得到noclasdef错误说D不是prsent。
为什么我会这样?请分享您的想法
包TEST1导入test.CHECK.TestA; import test.CHECK.TestB;班级工厂
{
final static int A(){// some ref to test.CHECK.TestA}
static int B(){// some ref to test.CHECK.TestB}
static int C(){}
我有jar包含这个类,并在那个jar中打包test.CHECK.TestB。但是,这个jar不包含test.CHECK.TestA。
现在,我的客户端程序有这个jar调用c()。然后,为TestA获取ClassNotFoundException,虽然我们没有调用A()。为什么会这样?
答案 0 :(得分:0)
我想你正在使用Maven,我也说你有两个项目。
你已经说过,在你的Jar中你没有testA类,那么这个类不会被添加到类路径中,然后,jvm找不到使用它。
您必须考虑将要在应用程序中使用的任何类添加到应用程序类路径中。这可以添加到这个Jar或其他Jar中,免费,但必须添加。
我希望能帮助你。