代码之家  ›  专栏  ›  技术社区  ›  Brett McCann

如何在Java中安装Windows驱动程序?

  •  13
  • Brett McCann  · 技术社区  · 17 年前

    我们正在处理一些按字母访问共享驱动器的遗留代码(例如F:\)。使用UNC符号不是一个选项。我们的Java包装应用程序将作为一个服务运行,作为第一步,我希望在代码中显式地映射驱动器。有人这样做吗?

    3 回复  |  直到 16 年前
        1
  •  16
  •   Jorge Ferreira    17 年前

    考虑执行映射网络驱动器的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:[username@dotted domain name]
            [/SMARTCARD]
            [/SAVECRED]
            [[/DELETE] | [/PERSISTENT:{YES | NO}]]
    
    NET USE {devicename | *} [password | *] /HOME
    
    NET USE [/PERSISTENT:{YES | NO}]
    
        2
  •  11
  •   community wiki ddimitrov    17 年前

    你可以使用JCIFS

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

    或者,如果您想要更高级别的API和对其他协议(如ftp、zip等)的支持:

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

    这两种选项都是纯Java和跨平台的。

        3
  •  4
  •   Jonas K    17 年前

    我认为最简单的方法是使用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) {
        }