15

を使用してパスを印刷できますSystem.getenv("PATH")。次に、おそらくそれらのパスをたどっFileて、ファイルが存在するかどうかを確認するために使用できます。

Java でもっと速い方法はありますか?

4

3 に答える 3

4

Runtime.getRuntime().exec("command");セクションで使用できますtry ... catch。アプリが存在しない場合はPATH、例外が発生します。

[編集]

しかし..これはチェックの代わりにアプリを実行します。ごめん。

于 2013-03-20T13:00:31.790 に答える
4

Java でもっと速い方法はありますか?

パフォーマンスに関しては、No.

コーディング作業に関しては、おそらくノーです。確かに、コマンド検索パスを検索して実行可能ファイルが存在するかどうかを確認するサードパーティの Java ライブラリについては知りません。

残念ながら、Windows で実行可能ファイルを検索するのは、ファイル サフィックスに基づいてさまざまな種類の実行可能ファイルを考慮する必要があるため、少し注意が必要です。Linux / Unix でも、新しい Java 7 ファイル属性 API を使用して、候補ファイルに実行権限が設定されているかどうかを判断する必要があります。

(一部のコマンドは無害な方法で実行できることを認識しています。たとえば、バージョン文字列やヘルプ情報を出力するオプション/引数をサポートしている場合があります。ただし、それは特定の場合にのみ機能します。また、 Unix / Linux では、"whereis" と呼ばれる組み込みのシェル コマンドがあり、指定された名前の実行可能なコマンドが検索パスに存在するかどうかを知ることができます。)

于 2013-03-20T13:23:12.337 に答える
3

あなたのアプローチはうまくいくでしょう。

パス内の各ディレクトリでFile.listFiles(FileFilter filter)メソッドを使用することをお勧めします。これにより、各ディレクトリの検索が簡単になります。

于 2013-03-20T13:10:51.797 に答える