結論から言うと、ローカル プログラム フォルダー(C:\Users\hoge\AppData\Local\Programs)を使いましょうというお話。
管理者権限がない
そもそも限定的な状況かもしれませんが、、、
自社の貸与PCでもコンプライアンス的に厳しかったり、または他社案件に参画していて客先からPCを貸与されている場合などで、Windows PCの自分のログオンアカウントが管理者権限を持っていない場合が多々あると思います。それでも諸事情でローカルPCにVSCodeを入れてUMLで業務フローや状態遷移図を描いてプレゼンしないといけないような場合、ありませんか?
私はあります。普段は管理権限を与えられたVDI環境で資料作成してますが、VDI経由でTeams会議に参加すると音声品質が激マズだったりするのでローカルPCで会議に入ってプレゼン資料も共有したいし、なんなら客先にPCを持参してWifiがない状況で資料をディスプレイに映して説明したりしないといけません。
UMLはVSCodeで
皆さんきっと同じだと思いますが、UMLはVSCodeでPlantUML拡張機能入れていると思います。UML記述をプレビューするにはJavaとGraphvizのインストールが必要で、よく見かけるインストール手順ではどちらも管理者権限が必要です。つまり、管理者権限がない貸与PCではPlantUMLのプレビューができないので、打合せの場で修正してもその結果をプレビューできないことになります。
管理者権限がなくても実行ファイルを置ける場所
Windowsには管理者権限がなくてもプログラムを配置できる場所があります。VSCodeも「System Installer」と「User Installer」があり、「User Installer」は管理者権限がなくてもインストールできて、それはユーザープロファイルの中にインストールされます。
※ユーザープロファイルの中のProgramsの正式名称はよく分かっていませんが、Copilotに訊いたら「ローカル プログラム フォルダー」だと教えてくれました。
なので、JavaやGraphvizもこの「ローカル プログラム フォルダー」の中に置けば良いんじゃね?という話です。
インストール手順
- Javaのインストール
- ライセンス的に問題がなさそうなOpenJDKディストリビューションのzipをダウンロードします。私はこのあたりからWindows-x64用をDLしました。
- zipをダウンロードした時点ではファイルのプロパティを見ると「このファイルは他のコンピューターから取得したものです・・・・」となっていて「許可する」のチェックボックスがOFFになっています。このままだと色々と厄介なのでチェックボックスをONにして「適用」「OK」とします。
- zipを展開したら「jdk21」とかの適当な分かりやすいフォルダ名に変えて、ローカル プログラム フォルダー(C:\Users\hoge\AppData\Local\Programs\)の中に移動します。
- Graphvizのインストール
- こちらも同様で適当なバージョンのWin64用のzipをダウンロードします。
- 「許可する」をONにしてzip解凍し、「Graphviz12」とかの適当な分かりやすいフォルダ名に変えて、ローカル プログラム フォルダーの中に移動します。
- 環境変数の設定
- コントロールパネルを開き、「ユーザーアカウント」→「ユーザーアカウント」とクリックするとサイドメニューに「環境変数の変更」が現れるのでクリックします。
- 「hogeのユーザー環境変数」の中にある「Path」を選んで「編集」をクリックし、ダイアログで「新規」をクリックしたら「java.exe」があるフォルダ(C:\Users\hoge\AppData\Local\Programs\jdk21\bin\など)を指定し、「OK」します。
- 「環境変数」の画面に戻ったら「新規」をクリックし、変数名「JAVA_HOME」に↑と同じフォルダ(C:\Users\hoge\AppData\Local\Programs\jdk21\bin\など)を指定し、「OK」します。
- 再度「環境変数」の画面に戻ったら「新規」をクリックし、変数名「GRAPHVIZ_DOT」に「dot.exe」のパス(C:\Users\hoge\AppData\Local\Programs\Graphviz12\bin\dot.exeなど)を指定し、「OK」します。
確認
おそらくこの状態でPlantUMLの拡張機能を入れたVSCodeで、UML記述をプレビューできるはずです。
もしダメなら環境変数の設定が間違ってないか確認し、PC再起動してからプレビューしてみてください。
それでもダメな場合は、自分では解決できないものとして諦めてください。