文字 (f:\ など) で共有ドライブにアクセスするレガシー コードを使用しています。UNC 表記の使用はオプションではありません。私たちの Java ラッパー アプリはサービスとして実行されます。最初のステップとして、コードでドライブを明示的にマップしたいと思います。誰かがこれをしましたか?
			
			35388 次
		
3 に答える
            16        
        
		
次のコードのように、ネットワークドライブをマップするDOSコマンドを実行することを検討してください。
String command = "c:\\windows\\system32\\net.exe use f: \\\\machine\\share /user:user password";
Process p = Runtime.getRuntime().exec(command);
...
netuseコマンドの詳細を参照してください。
このコマンドの構文は次のとおりです。
NET USE
[デバイス名| *] [\\ computername \ sharename [\ volume] [password | *]]
        [/ USER:[ドメイン名\]ユーザー名]
        [/ USER:[点線のドメイン名\]ユーザー名]
        [/ USER:[username @ dotted domain name]
        [/スマートカード]
        [/ SAVECRED]
        [[/ DELETE] | [/永続的:{はい| いいえ}]]
NETUSE{デバイス名| *}[パスワード| *] /家
NET USE [/ PERSISTENT:{YES | いいえ}]
    于 2008-10-16T14:51:30.897   に答える
    
    
            11        
        
		
JCIFSを使用できます
http://jcifs.samba.org/src/docs/api/jcifs/smb/SmbFile.html
または、高レベルの API と、FTP、Zip などの他のプロトコルのサポートが必要な場合:
http://commons.apache.org/vfs/filesystems.html
どちらのオプションも純粋な Java とクロス プラットフォームです。
于 2008-10-16T14:55:27.050   に答える
    
    
            5        
        
		
最も簡単な方法は、Runtime.getRuntime()。exec()メソッドを使用して、「netuse」コマンドを呼び出すことだと思います。
例えば:
    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) {
    }
于 2008-10-16T14:48:11.060   に答える