【发布时间】:2021-11-27 19:38:21
【问题描述】:
我需要相同的代码在具有不同库的不同服务器上工作。
例如 serverB 包含 libraryB。 ClassB 而 serverA 没有。
为了使代码在两台服务器上都能正常工作,我没有显式导入该类,而是仅在需要时声明它。例如:
If(serverB) {
libraryB.ClassB foo = new libraryB. ClassB();
foo.doSomething();
}else{
whatever();
}
这通常对我有用,但现在我在新服务器上安装了我的代码,我得到了 NoClassFoundException。我反编译了我的类并导入了库。为什么?我可以避免吗?
谢谢
【问题讨论】:
-
您能否定义接口并根据您是在服务器 B 还是服务器 A 上使用正确的类/类型注入特定的实现?
-
导入只是语法糖。无论您是否使用其完全限定名称导入某些内容,都没有区别。
-
您确定“is server B”逻辑工作正常吗?
标签: java noclassdeffounderror javacompiler javaimports