現象
WinMerge(差分比較exeファイル)をjavaから実行したいです。
コマンドプロンプトから直接↓のコマンドをたたくと正しく実行できるのに、
javaからそのコマンドを実行しようとすると不具合が生じます。
D:\WinMerge\WinMergeU.exe D:\diff\AAA.txt D:\diff\BBB.txt /or D:\diff\比較結果.html
(備考:引数(A B /or C) A,Bは比較対象のファイル、/orは以降のパスに結果を保存するオプション、Cは差分結果の保存先パス)
javaからWinMerge(差分比較exeファイル)の起動は出来ており、
引数も比較対象ファイルA,Bのみを指定している場合、
正しく比較が実行されます。
Cの保存先パスを指定することで問題がおきます。
javaから「/or」オプションが何らかの理由で正しく読みとられていないような気がしています。
実現したいこと
・javaからコマンド実行する際に、引数を正しく渡したい
期待すること:2つのファイルAとBを比較し、その差分結果を別のファイルとして保存する
起きていること:差分結果の保存先として入力しているパスが、比較対象のファイルとして認識され、(まだ存在しないファイルのため)パスが間違っている旨のMSGがでる
該当のソースコード
java
1~略 2String inDiffFullPathName =""; 3String DiffFile1 = ""; 4String DiffFile2 = ""; 5 6String options = "/or "; 7inDiffFullPathName = "D:\\diff\\比較結果.html"; 8options += inDiffFullPathName; 9DiffFile1 = "D:\\diff\\AAA.txt"; 10DiffFile2 = "D:\\diff\\BBB.txt"; 11 12ProcessBuilder pb = new ProcessBuilder(new String[]{ "D:\\WinMerge\\WinMergeU.exe", DiffFile1, DiffFile2, options}); 13pb.directory(new File("D:\\")); 14Process pc = pb.start();
補足情報
java version 1.8
WinMerge 2.16.21, 2.16.22で試行
eclipse 4.7.3
アドバイス頂ければ大変助かります。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/27 04:04 編集
2022/09/27 08:38
2022/09/27 08:38