web-dev-qa-db-ja.com

.jarファイルを実行するときに簡単に昇格するにはどうすればよいですか?

インストーラーのJarファイルを実行しようとすると、ProgramFilesフォルダーの下にディレクトリを作成するための書き込みアクセスが拒否されたというエラーが表示されます。

右クリック-> [管理者として実行]はJarファイルでは使用できません(それらを使用するのはJava.exeであるため、シェルによって直接実行可能として扱われることはありません)。

標高のある.Jarファイルを実行する最も速くて簡単な方法は何ですか?

私はこのツールを評価して開発チームに推奨しています。開発チームは手動でボックスにインストールします。何も入力する必要のないオプションがいいと思います。

他のユーザーがすべてのコンピューターに変更を加えることなくJARインストーラーを簡単に実行できるようにするには、JARファイルを昇格して実行するバッチスクリプトでラップすることをお勧めします。 MicrosoftのElevation PowerToys を使用すると、これを簡単に行うことができます。 elevateコマンドを前に付けるだけで、管理者として何でも起動できる便利なユーティリティが含まれています。

ダウンロードしたら、フォルダーに解凍し、elevate.cmdelevate.vbsをJARファイルのあるフォルダーにコピーします。次に、拡張子が.cmdの新しいバッチスクリプトを次の内容で記述します。

elevate cmd /c start "%CD%\installer.jar"

これにより、システム上のそのようなファイルのデフォルトハンドラーを使用してJARファイルが起動されます(startcmdコマンドを使用)。 %CD%はスクリプトの現在の作業ディレクトリを指し、昇格されたコマンドラインはc:\windows\system32で開始されるため必要です。

何らかの理由でJavaがJARファイルのデフォルトハンドラーとして適切に構成されていない場合、それは失敗します。Javaがすべてのシステムで同じ場所にある場合は、代わりに次のようにすることができます。

elevate "c:\Program Files\Java\jre\bin\Java.exe" -jar "%CD%\installer.jar"

これらのいずれかを実行したら、バッチファイルを実行するだけで、Windowsは管理者の昇格を求め、インストーラーを起動します。

昇格スクリプト、スクリプト、およびインストーラーファイルを、スクリプトを起動する自己解凍型アーカイブに含めます。これを1つの素敵な小さな.exeファイルにまとめることができます。 ( 7-Zip は、そのようなアーカイブを作成するための優れたオープンソースツールです。)

Elevation PowerToysの詳細については、リンク先の記事またはダウンロードに含まれているREADMEファイルを参照してください。

6
Patches

これを行う機会がありましたが、Elevation PowerToysをダウンロードしてインストールすることなく、管理者としてcmd.exeを実行し、コマンドラインからJava.exe -jar 'installer.jar'を呼び出すのが最も簡単な方法であることがわかりました。もちろん、最初にJava.exeを見つける必要がありましたが、それほど時間はかかりませんでした...

2
Richard Turner