Как мне создать один JAR-файл для перемещения указанных c файлов в папке в другой каталог? - PullRequest
0 голосов
/ 14 февраля 2020

Я создал Java программу, которая в основном перемещает все файлы в указанной c «тестовой» папке в совершенно другой и указанный c каталог на компьютере. Как я могу упаковать папку «test» и файлы java и class в один исполняемый файл JAR?

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import javax.swing.JOptionPane; 

public class Test 
{
    public static void main(String[] args) throws IOException 
    {
        File sourceFolder = new File("test");
        String dataFolder = System.getenv("APPDATA");

        File destinationFolder = new File(dataFolder + "\\testing");

        copyFolder(sourceFolder, destinationFolder);
    }
    private static void copyFolder(File sourceFolder, File destinationFolder) throws IOException
    {
        if (sourceFolder.isDirectory()) 
        {
            if (!destinationFolder.exists()) 
            {
                destinationFolder.mkdir();
            }

            String files[] = sourceFolder.list();

            for (String file : files) 
            {
                File srcFile = new File(sourceFolder, file);
                File destFile = new File(destinationFolder, file);
                copyFolder(srcFile, destFile);
            }
            JOptionPane.showMessageDialog(null,"File installed successfully","Title",1);
        }
        else
        {
            Files.copy(sourceFolder.toPath(), destinationFolder.toPath(), StandardCopyOption.REPLACE_EXISTING);
        }
    }
}

Я получаю эту ошибку при перемещении папки test:

Exception in thread "main" java.nio.file.NoSuchFileException: test
        at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
        at java.base/sun.nio.fs.WindowsFileCopy.copy(WindowsFileCopy.java:98)
        at java.base/sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:283)
        at java.base/java.nio.file.Files.copy(Files.java:1298)
        at Test.copyFolder(test.java:39)
        at Test.main(test.java:16)
...