servlet - ¿Cómo puedo montar una unidad de Windows en Java?
servlets java (3)
Considere ejecutar el comando DOS que mapea una unidad de red como en el siguiente código:
String command = "c://windows//system32//net.exe use f: ////machine//share /user:user password";
Process p = Runtime.getRuntime().exec(command);
...
Ver detalles sobre el comando 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}]
Estamos trabajando con algún código heredado que acceda a una unidad compartida por la letra (f: / por ejemplo). Usar la notación UNC no es una opción. Nuestra aplicación Java wrapper se ejecutará como un servicio, y como primer paso, me gustaría asignar la unidad de forma explícita en el código. ¿Alguien ha hecho esto?
Creo que la manera más fácil es usar el método Runtime.getRuntime () .exec () y llamar al comando "net use".
Por ejemplo:
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) {
}
Puedes usar JCIFS
http://jcifs.samba.org/src/docs/api/jcifs/smb/SmbFile.html
o si desea API de nivel superior y soporte para otros protocolos como FTP, Zip y otros:
http://commons.apache.org/vfs/filesystems.html
Ambas opciones son puramente Java y multiplataforma.