Runtime.exec()について
Runtime.exec()について質問させて下さい。
現在、Windowsのサーブレット上のファイル操作で
ファイルの属性ごと(読み取り専用)コピーしたいので
Runtime.exec()からxcopyコマンドを呼び出してコピーしています。
(JavaのAPIでは属性ごとコピー、属性変更ができない!?ため)
エディタはeclipse3.5を使用しております。
eclipse上のTomcat6.0では綺麗にコピーしてくれるのですが、
Tomcat6.0のみでの実行ではコピーできません(0個のファイルをコピー)
eclipse3.5上のTomcat設定とTomcat自体のJVM設定でのJREパスは同じJRE
を参照しています。常にEclipseを起動させた状態!!ってのは厳しいので
なんとかTomcatのみでコピーを成功させたいので助言お願いいたします。
下記ソースで 4個の読み取り属性を強制上書きコピーしますと、表示は
Eclipse3.5上では → 「4個のファイルコピーに成功」表示
Tomcat6上では → 「0個のファイルコピーに成功」表示
となります。。。
【以下ソース】
CopyFrom = "コピー元パス";
CopyTo = "コピー先パス";
try{
String[] cmd = new String[]{"cmd","/c","xcopy",CopyFrom+"*.*",CopyTo,"/y","/r","/k","/h"};
Runtime Run = Runtime.getRuntime();
Process process = Run.exec(cmd);
//実行結果取得
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String Line = null;
while((Line = br.readLine()) != null){
System.out.println(Line);
}
}catch(IOException e){
System.out.println(e);
}
【環境】
・Windows Server2003
・Java1.6.0_13(パスは通しています)
・Tomcat6.0.14