Как смонтировать Windows-диск на Java?

Мы работаем с некоторым устаревшим кодом, который обращается к общему диску по букве (например, f: \). Использование нотации UNC не является вариантом. Наше приложение оболочки Java будет работать как служба, и в качестве первого шага я хотел бы явно указать диск в коде. Кто-нибудь сделал это?

Ответ 1

Рассмотрите возможность выполнения команды DOS, которая отображает сетевой диск, как в следующем коде:

String command = "c:\\windows\\system32\\net.exe use f: \\\\machine\\share /user:user password";
Process p = Runtime.getRuntime().exec(command);
...

Подробнее о команде net use:

The syntax of this command is:


NET USE
[devicename | *] [\\computername\sharename[\volume] [password | *]]
        [/USER:[domainname\]username]
        [/USER:[dotted domain name\]username]
        [/USER:[[email protected] domain name]
        [/SMARTCARD]
        [/SAVECRED]
        [[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {devicename | *} [password | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]

Ответ 3

Я думаю, что самый простой способ - использовать метод Runtime.getRuntime(). exec() и вызвать команду "net use".

Например:

    try {
        // Execute a command without arguments
        String command = "C:\\Windows\\system32\\net.exe use F: \\\\server\\share /user:user password";
        Process child = Runtime.getRuntime().exec(command);
    } catch (IOException e) {
    }