Чтобы выполнить команду, вам придется извлечь файл bat впоследствии. Вы не можете запускать исполняемые файлы, которые находятся внутри jar-файлов. В основном вам нужно открыть запись командного файла в jar-файле как поток ввода и скопировать данные в FileOutputStream
на диске. Вы не сможете выполнить его до тех пор, пока он не станет подходящим автономным файлом в файловой системе.
Если вы уже пытаетесь извлечь его, скорее всего, вы используете getResource
или getResourceAsStream
немного неправильно. Это легко сделать, потому что это зависит от того, звоните ли вы ClassLoader.getResourceAsStream
или Class.getResourceAsStream
. Первый всегда использует абсолютные пути (неявно), а второй может использовать абсолютные или относительные пути. Например, в вашем случае вы хотите:
BatFileRead.class.getResourceAsStream("/md.bat")
или
BatFileRead.class.getClassLoader().getResourceAsStream("md.bat")
Вы проверили, что файлы bat определенно попадают в файл jar? Просто перечислите содержимое с помощью
jar tvf file.jar
чтобы посмотреть, что там.