是否可以将一些 .jar 文件类路径指向当前正在执行的 .jar 文件类路径?我知道听起来很疯狂,但我最近遇到了类似上面的情况。我的要求是我有一个maven项目从maven nexus运行时间获取一些必要的jar文件。我还有另一个maven项目我将该项目作为maven依赖项包含进入当前项目。所有我一起有两个jar files.one作为依赖,一个是从maven nexus获取。
当我执行时,我正在读取nexus jar文件作为输入流并通过URLClassLoader访问类。
URLClassLoader ucl = new URLClassLoader("Nexus URL path to .jar");
Class c = ucl.loadClass(".classfile");
这个加载并成功执行。从nexus jar执行一些类时,它访问我的其他jar依赖类。(例如:尝试通过实用程序类读取文件,在其他jar中,但资源文件在我的nexus jar中)。所以我得到NoClassDefFoundError
。原因是实用程序类将类路径加载到它所在的位置(指向我当前的项目src/class
)并尝试在那里搜索资源文件。但是实际的资源文件包含在nexus jar类path.so我的执行中断。
如何将依赖jar类路径指向Nexus jar类路径?请让我知道您的想法。