Java_Windowsでシンボリックリンク(外部コマンドmklinkの実行)
JavaでWindows環境でシンボリックリンクをつくりたかったが、
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"」でうまくいった。
意外にググってもなかったので備忘録。