Мое приложение запускается с помощью некоторого процесса (control-m). Он запускается из сценария bash, который я могу изменить (скрипт вызывается другим процессом).Почему класс загружается, если не в classpath?
Приложение запускается с неправильной версией пружины. Дело в том, что я знаю, какой jar загружается, но это не в classpath! Путь к классам предоставляется в сценарии bash. Я также подтвердил это, выполнив:
ClassLoader cl = ClassLoader.getSystemClassLoader();
java.net.URL[] urls = ((URLClassLoader)cl).getURLs();
for(java.net.URL url: urls){
System.out.println(url.getFile());
}
Но все же некоторые банки были закодированы, которых не должно быть. У меня есть -verbose: class в командной строке. Как я могу узнать, почему классы, которые мне нужны, загружаются из недействительных банок? Почему эти ярды даже загружаются? Как отладить процесс загрузки классов?
Когда я запускаю скрипт (вместо этого другого процесса) из моей учетной записи пользователя, все в порядке.
Может ли быть что-то в окружающей среде, например переменная среды CLASSPATH? – danpaq
№ Нет. – mabn
Также убедитесь, что вы используете одну и ту же JVM. – danpaq