Repository repo = new Repository(); repo.OpenFile(this.eapFileLocation); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override public void run() { logger.info("Requesting repository to close file."); repo.CloseFile(); repo.Exit(); } }));