0

rar.exeJavaでパスを使用したいと思います。これは、ライブラリを使用せずに Java アプリケーション内から rar ファイルを解凍するために必要です。

私は、Winrar のプログラム ファイル フォルダーをPATHシステム変数に追加するようにユーザーに要求すると考えました。

ここで知っておく必要があるのは、rar.exe ファイルへのフル パスを取得する方法だけです。

私が今持っているのはこれです:

//Split all paths
String[] paths = System.getenv("Path").split(";");
for(String value : paths)
{
    if(value.endsWith("Winrar"))
        System.out.println(value);
}

ただし、ユーザーがWinrarをインストールしたかどうかを知る方法はありませんC:\Programfiles\Winrarstuff. の場所を取得する方法はありますrar.exeか、またはパス文字列内のすべてのフォルダーを手動でスキャンして場所を特定する必要がありますか?

4

2 に答える 2

1

You can use where on Windows Server 2003+ which is roughly equivalent to which in *nix, however you can get similar behavior for other windows environments using the code found here: https://stackoverflow.com/a/304441/1427161

于 2013-11-16T15:09:22.020 に答える
1

へのパスが PATH 環境変数にある場合、任意のファイルの場所からrar.exe簡単に呼び出すことができます。rar.exeつまり、 経由でも呼び出すことができますRuntime.exec(...)。リターン コードが 0 以外の場合、Winrar がインストールされていないなどの理由で、プロセスを開始できません。

public static boolean checkRar() {
    Process proc = Runtime.getRuntime().exec("cmd /c rar.exe");
    try (BufferedReader reader =
            new BufferedReader(new InputStreamReader(proc.getInputStream()))) {
        String line;
        while ((line = reader.readLine()) != null) {
            // parse line e.g. to get version number
        }
    }
    return (proc.waitFor() == 0);
}
于 2013-11-16T15:19:23.060 に答える