
転石苔を生ぜず - Cmderを利用したローカルJavaランタイム環境の切り替えアプリケーション
目次
マルチバージョン環境
開発をしている友人の多くは、複数の環境の切り替えに悩まされています。通常、良いランタイム環境には良いバージョンマネージャーが重要です。 例えば、NodeJsのnvm - ただしこれはNodeのバージョンアップグレードがあまりにも速いため、このようなもの(そうでなければ悪夢)を出さざるを得なかったからです。 しかし比較的言えば、前方互換性が強いJava環境では、この需要はそれほど顕著ではありません。そのため、このようなバージョン管理はJava環境ではあまり一般的ではありません。
ただし、比較的遅れている企業アプリケーションに比べて、OracleのJDKの継続的なアップグレード反復により、多くの旧システムが追随せざるを得ず、 多くの商用ソフトウェアも追随せざるを得ない状況下では、マルチバージョンJDK環境の必要性はしばしば厳しいものです。
Cmder
CmderはWindowsコマンドライン端末の優れた代替品であり、デフォルトでGitをサポートするだけでなく、一部のLinuxツールコマンドも統合しています。 UI以外に、Windowsシステムコンテキストメニューの統合設定の自由度も非常に高いです。
アイデア
複数のJDKをインストールして切り替える必要がある場合、通常は指定されたプログラムの起動bat内でJAVA_HOMEとPATHを一時的に置き換えます。 非常に単純ですが、毎回一部を書く必要があります。時にはランタイムを変更する必要がある場合、変更する必要があります。単純ですが煩雑です。 Cmder自体には初期化スクリプトが付属しているため、理論的にはJAVA_HOMEとPATHの置換コマンドを追加するだけです。
方法
原理は単純ですが、ツールで理論的な設定を実現する方法は、通常時間のかかる部分です。 さらに、ツールには変更できる場所が複数ある場合があり、最適な方法を見つけるのも時間がかかります。 以下は私が個人的に最適だと思う方法です。ファイルを編集したり追加したりする必要はありません - 設定に直接追加します。
Cmder設定を開き、【起動 - タスク】設定をクリックします
既存のタスクをコピーします(管理者としてcmderを開く方が良い)、適切な接尾辞を追加します。例:jdk7
コマンドグループの内容を次のように変更します

以下のテキストはコピー&ペースト用です
*cmd /k %ConEmuDir%\..\init.bat&SET JAVA_HOME="C:\Java\jdk1.7.0_25"&SET PATH=C:\Java\jdk1.7.0_25\bin;%PATH%【統合】設定をクリックします
メニュー項目を選択します(例:Cmder Here)、メニュー項目名を変更します(例:Cmder Here w/jdk7)、コマンド(新しく作成したjdk7タスクを使用)、次に【登録】をクリックします

確認
これで、Windowsシステムのコンテキストメニュー(右クリックメニュー)に【Cmder Here w/jdk7】が追加されていることがわかります。
任意のフォルダでこの項目を右クリックすると、cmderのコマンドラインワインドウが起動します。
java -versionを入力して、事前に設定したJava環境を確認できます

応用とTODO
上記は、Cmderの最も基本的な【フォルダ内で端末を開く】機能を利用して、特定のPATH下で指定されたランタイムでコマンド端末を開くことを実現しています。
- 同様に、PATHベースの任意のランタイム環境の切り替えに適用できます。
- Cmderは選択したファイルをパラメータとして渡すこともできます。これを設定する方法はまだ成功していません。 理論的には、選択したbatを実行するためにJava JDKバージョンを指定できるはずです。この機能を追加すると、より快適に使用できるようになります。 ご存知の方がいらっしゃれば、設定方法、コマンドグループの内容を共有していただければ幸いです。

