ユーザー認証後にシェルスクリプトをパテに渡す必要があるJavaWebアプリケーションを開発しています。putty.exeは、認証が成功し、スクリプトが正常に実行を開始した場合にのみ起動する必要があります。
また、さまざまなユーザーがシステムのさまざまな場所にパテをインストールしている可能性があるためです。ユーザーが手動でパスを設定しなくてもputty.exeを起動する方法はありますか?または、プログラムでパスを見つけてパテを起動することは可能ですか?
理論的には、ユーザーのコンピューター上のすべてのディレクトリを検索してputty.exeを見つけることができます。ただし、実際には、ファイルを使い慣れたディレクトリに配置するか、環境変数を使用する必要があります。
1つの方法は、ユーザーマシンのPATHシステム変数を編集し、Putty.exeの場所のフルパスを追加することです。
もう1つの解決策は、すべてのユーザーマシンのデフォルトフォルダーにPutty.exeを指すリンクを作成して、Javaが問題なくこのリンクにアクセスできるようにすることです。
3番目の解決策は、Putty.exeをアプリケーションインストーラーと一緒に出荷することです。Putty.exeは、動作するためにカスタムDLLを必要としません(少なくとも私はまだ必要としません)。
私は上記の人々に同意します。また、アプリケーションでは、ユーザーがputty.exeのフルパスを設定し、それらをCookieに保存する機能を提供できます。
まず、ユーザーにパテをパスに追加させないことは、ユーザーごとに構成ファイルを作成することで最も簡単に解決できると言います。ここで、パラメーターの1つはパテ実行可能ファイルの場所になります。これをデフォルト値とパテを開くことができない場合のダイアログボックスで適切に処理することは、ほとんどのユーザーにとって単純でなじみ深いことです。
2つの単純な状況は、実行可能ファイルの検索方法を完全に混乱させる可能性があります。ユーザーがパテ実行可能ファイルの名前を変更するか、ユーザーが複数のバージョンのパテを使用している場合です。
最初の状況で困惑するのを避けるために、新しい名前を尋ねて、どういうわけかそれを設定に保存する必要があります。
秒単位で困惑するのを避けるために、必要なパテのバージョンを尋ね、そのバージョンを保存し、どういうわけか、必要なのがputty.exeを探すだけかどうかバージョンチェックを行う必要があります(おそらく、各バージョンのチェックサム)。
これは、実行可能ファイルを指すようにユーザーに要求するよりも、ユーザーにとって(そして間違いなくあなたにとっても)煩わしいものではないにしても、同じです。物事がうまくいかない可能性のある方法は他にもあります。
基本的に、実行可能ファイルを検索することは可能ですが、それは誰にもトラブルを救うことはなく、あなたのためにもっと多くのことをするだけです。ユーザーにパスを構成させるのはそれほど難しいことではありませんが、それを避けたい場合は、プログラムによってパテパスが保存されたユーザーごとの構成ファイルを用意するのが最も簡単な方法です。