Файл загрузчик для обновления системы падает - PullRequest
0 голосов
/ 02 апреля 2012

В настоящее время я пишу приложение на java, которое устанавливает моды в minecraft, и при попытке загрузить необходимые файлы происходит сбой системы обновления / первого запуска, я получаю следующее исключение

java.io.IOException: Access is denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at com.hachisoftware.mat.launcher.Util.getFileFromWeb(Util.java:43)
    at com.hachisoftware.mat.launcher.Main.setup(Main.java:22)
    at com.hachisoftware.mat.launcher.Main.main(Main.java:15)
java.io.FileNotFoundException: \Gui.jar (Access is denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at com.hachisoftware.mat.launcher.Util.getFileFromWeb(Util.java:71)
    at com.hachisoftware.mat.launcher.Util.getFileFromWeb(Util.java:45)
    at com.hachisoftware.mat.launcher.Main.setup(Main.java:22)
    at com.hachisoftware.mat.launcher.Main.main(Main.java:15)
java.io.IOException: Access is denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at com.hachisoftware.mat.launcher.Util.getFileFromWeb(Util.java:43)
    at com.hachisoftware.mat.launcher.Main.setup(Main.java:23)
    at com.hachisoftware.mat.launcher.Main.main(Main.java:15)
java.io.FileNotFoundException: \IntelliMod.jar (Access is denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at com.hachisoftware.mat.launcher.Util.getFileFromWeb(Util.java:71)
    at com.hachisoftware.mat.launcher.Util.getFileFromWeb(Util.java:45)
    at com.hachisoftware.mat.launcher.Main.setup(Main.java:23)
    at com.hachisoftware.mat.launcher.Main.main(Main.java:15)

Я использую следующий код для загрузки

public static boolean getFileFromWeb(String location, String destination)
{
    String[] s = location.split("/");
    String s2 = s[s.length - 1];

    if(!"".equals(destination) && !(new File(destination)).exists())
        (new File(destination)).mkdir();

    File outFile = new File(destination, s2);
    if(!outFile.exists())
        try { outFile.createNewFile(); } catch(Exception e) { e.printStackTrace(); }

    return getFileFromWeb(outFile, location);
}

public static boolean getFileFromWeb(File outFile, String location)
{
    BufferedInputStream in = null;
    BufferedOutputStream out = null;

    try
    {
        URL url = new URL(location);
        URLConnection urlc = url.openConnection();
        urlc.setRequestProperty("User-Agent", "HS File Downloader(" + clientName + ")");
        in = new BufferedInputStream(urlc.getInputStream());
        out = new BufferedOutputStream(new FileOutputStream(outFile));
        byte[] dataBuffer = new byte[4096 * 1024];

        for(int line = in.read(dataBuffer); line != -1; line = in.read(dataBuffer))
        {
            out.write(dataBuffer, 0, line);
            out.flush();
        }

        in.close();
        out.close();
    }
    catch(Exception e)
    {
        e.printStackTrace();
        return false;
    }

    return true;
}

Любая помощь или совет приветствуется

1 Ответ

0 голосов
/ 02 апреля 2012

В исключении четко указано:

java.io.IOException: Access is denied

java.io.FileNotFoundException: \Gui.jar (Access is denied)

Убедитесь, что ваша программа имеет права доступа к файловой системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...