14 Stimmen

Wie kann ich ein Windows-Laufwerk in Java einbinden?

Wir arbeiten mit einem älteren Code, der auf ein freigegebenes Laufwerk über den Buchstaben (z. B. f:\) zugreift. Die Verwendung der UNC-Notation ist keine Option. Unsere Java-Wrapper-Anwendung wird als Dienst ausgeführt, und als ersten Schritt würde ich das Laufwerk gerne explizit im Code zuordnen. Hat das schon jemand gemacht?

16voto

Jorge Ferreira Punkte 92489

Führen Sie den DOS-Befehl aus, der ein Netzlaufwerk zuordnet, wie im folgenden Code beschrieben:

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

Siehe Einzelheiten zum Befehl net use:

The syntax of this command is:

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

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

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

11voto

ddimitrov Punkte 3259

Sie können JCIFS verwenden

http://jcifs.samba.org/src/docs/api/jcifs/smb/SmbFile.html

oder wenn Sie eine höherwertige API und Unterstützung für andere Protokolle wie FTP, Zip und andere wünschen:

http://commons.apache.org/vfs/filesystems.html

Beide Optionen sind reines Java und plattformübergreifend.

5voto

Jonas K Punkte 4017

Ich denke, der einfachste Weg ist, die Methode Runtime.getRuntime().exec() zu verwenden und den Befehl "net use" aufzurufen.

Zum Beispiel:

    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) {
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X