Если вы действительно не можете заранее установить classpath, используя аргумент java
'-cp
или -classpath
(почему бы и нет? Это нормальный подход), тогда вы можете попробовать использовать URLClassLoader
вместо. Вот начальный пример:
URL url = new URL(whateverPath);
ClassLoader contextCL = Thread.currentThread().getContextClassLoader();
ClassLoader urlCL = URLClassLoader.newInstance(new URL[] { url }, contextCL);
Thread.currentThread().setContextClassLoader(urlCL);
// ...
Вам повезет, если класс, который вы вызываете, на самом деле , загружающий свои ресурсы через Thread.currentThread().getContextClassLoader().getResource()
и, следовательно, , а не через
SomeClass.class.getClassLoader().getResource()
.