Загрузчик классов для jre может «найти» любой файл в вашем пути к классам.
Чтобы добавить внешнюю программу, чтобы она была доступна вашему банку:
Сначала создайте загрузчик классов и используйте ClassLoader для динамического получения ресурса, и пусть он обрабатывает специфичные для пути детали местоположения файла. Таким образом ... вы будете делать что-то вроде этого:
URL myExecutable =
MyClass.class.getClassLoader().getResource("executable/program.exe");
Теперь вы должны иметь прямой доступ к программе, как если бы это был любой другой файл.
File f=new File(myExecutable.toURI());
И теперь вы можете позвонить, используя
Runtime.getRuntime().exec(f.getAbsolutePath());
CAVEAT
В этот момент задайте себе вопрос ПОЧЕМУ Я ОБЕСПЕЧИВАЮ EXE-файл В ФАЙЛЕ JAR? Лучше иметь отдельный пакет для каждой платформы операционной системы в zip-файле. Поместите jar и exe-файл в zip-файл - вместо того, чтобы связать специфичный для ОС исполняемый файл с вашим двоичным файлом Java.