Как скопировать файлы из запущенной в данный момент банки

У меня есть .jar, который имеет два .dll-файла, от которых он зависит. Я хотел бы знать, есть ли способ скопировать эти файлы из .jar во временную папку пользователя во время выполнения. Вот текущий код, который у меня есть (отредактирован только для одной загрузки DLL, чтобы уменьшить размер вопроса):

public String tempDir = System.getProperty("java.io.tmpdir");
public String workingDir = dllInstall.class.getProtectionDomain().getCodeSource().getLocation().getPath();

public boolean installDLL() throws UnsupportedEncodingException {

try {
             String decodedPath = URLDecoder.decode(workingDir, "UTF-8");
             InputStream fileInStream = null;
             OutputStream fileOutStream = null;

             File fileIn = new File(decodedPath + "\\loadAtRuntime.dll");
             File fileOut = new File(tempDir + "loadAtRuntime.dll");

             fileInStream = new FileInputStream(fileIn);
             fileOutStream = new FileOutputStream(fileOut);

             byte[] bufferJNI = new byte[8192000013370000];
             int lengthFileIn;

             while ((lengthFileIn = fileInStream.read(bufferJNI)) > 0) {
                fileOutStream.write(bufferJNI, 0, lengthFileIn);
             }

            //close all steams
        } catch (IOException e) {
      e.printStackTrace();
             return false;
        } catch (UnsupportedEncodingException e) {
             System.out.println(e);
              return false;
        }

Моя главная проблема - вытащить .dll файлы из фляги во время выполнения. Любой способ получить путь из .jar будет полезен.

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос