Awesome Hacks!

プログラミング初心者なので地道に勉強していきます。分からない人の立場から整理していきます。

Java_Windowsでシンボリックリンク(外部コマンドmklinkの実行)

JavaWindows環境でシンボリックリンクをつくりたかったが、
mklinkコマンドがうまくいかなかった。

final int Success = 0;
try {
    ProcessBuilder builder = new ProcessBuilder(new String[]{"cmd", "/c", "mklink", "/D", "C:\\work\\LockFile", "C:\\work"});
        	
    Process process = builder.start();
    int result = process.waitFor();
    if (Success != result) {
        try {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            String errorResult;
            while ((errorResult = bufferedReader.readLine()) != null) {
                System.out.println("errresult : " + errorResult);
            }
        } catch (Exception ex) {
             ex.printStackTrace();
        }
    }
    System.out.println("Done " + result);

} catch (Exception e) {
    // TODO 自動生成された catch ブロック
    e.printStackTrace();
}

 
Stringとして「"mklink", "/D", "C:\\work\\LockFile", "C:\\work"」を渡していたがうまくいかず、
「"cmd", "/c", "mklink", "/D", "C:\\work\\LockFile", "C:\\work"」でうまくいった。
 
意外にググってもなかったので備忘録。