В настоящее время мне поручено обновить файл XML (persistance.xml) в банке на сайте клиентов. Конечно, я могу распаковать файл, обновить xml, а затем повторно развернуть файл для повторного развертывания. Я хотел бы создать эти операции командной строки в приложении Swing, чтобы человеку, выполняющему их, не приходилось переходить в командную строку. Есть мысли о том, как сделать это программно?




В Java API есть классы для управления файлами JAR.
Вы можете использовать классы Java ZipFile и ZipEntry для чтения содержимого файла JAR, а затем использовать ZipOutputStream для создания нового.
Конечно:
File tmp = new File ("tmp");
tmp.mkdirs();
Process unjar = new ProcessBuilder ("jar", "-xf", "myjar.jar", tmp.getName ()).start();
unjar.waitFor();
// TODO read and update persistence.xml
Process jar = new ProcessBuilder ("jar", "-cf", "myjar.jar", tmp.getName()).start();
jar.waitFor();