Упаковка вашей WAR
Самое простое решение - по возможности упаковывать все зависимые JAR-файлы и классы в развертываемый WAR-файл. Затем вы можете контролировать, как они загружаются из указанного вами пути к классам.
Как уже упоминалось в BGR, все ваши скомпилированные Java-ресурсы (файлы * .class) должны быть доступны в вашем WAR-файле в каталоге web-inf\classes
Любые поддерживающие JAR-файлы должны находиться в каталоге web-inf\lib
внутри вашего WAR-файла.
Tomcat знает об этих структурах каталогов, так как это стандартный формат файлов WAR.
Конечно, вы можете отклониться от этой стандартной структуры и загружать JAR-файлы из других мест за пределами вашей WAR, но тогда вам нужно понять потенциальные проблемы с загрузкой классов. То, что я упомянул, - это самый простой путь вперед.
Существует ли файл в пути к классам?
В вашем приложении вы можете сделать что-то подобное, чтобы проверить, существует ли определенный путь к вашему classpath.
URL resource = this.getClass().getClassLoader().getResource(path);
Вот некоторые дополнительные сведения из Oracle о Независимый от местоположения доступ к ресурсам