転石苔を生ぜず - Cmderを利用したローカルJavaランタイム環境の切り替えアプリケーション

転石苔を生ぜず - 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の置換コマンドを追加するだけです。

方法

原理は単純ですが、ツールで理論的な設定を実現する方法は、通常時間のかかる部分です。 さらに、ツールには変更できる場所が複数ある場合があり、最適な方法を見つけるのも時間がかかります。 以下は私が個人的に最適だと思う方法です。ファイルを編集したり追加したりする必要はありません - 設定に直接追加します。

  1. Cmder設定を開き、【起動 - タスク】設定をクリックします

  2. 既存のタスクをコピーします(管理者としてcmderを開く方が良い)、適切な接尾辞を追加します。例:jdk7

  3. コマンドグループの内容を次のように変更します picture

    以下のテキストはコピー&ペースト用です

    *cmd /k %ConEmuDir%\..\init.bat&SET JAVA_HOME="C:\Java\jdk1.7.0_25"&SET PATH=C:\Java\jdk1.7.0_25\bin;%PATH%
    
  4. 【統合】設定をクリックします

  5. メニュー項目を選択します(例:Cmder Here)、メニュー項目名を変更します(例:Cmder Here w/jdk7)、コマンド(新しく作成したjdk7タスクを使用)、次に【登録】をクリックします picture

確認

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

応用とTODO

上記は、Cmderの最も基本的な【フォルダ内で端末を開く】機能を利用して、特定のPATH下で指定されたランタイムでコマンド端末を開くことを実現しています。

  • 同様に、PATHベースの任意のランタイム環境の切り替えに適用できます。
  • Cmderは選択したファイルをパラメータとして渡すこともできます。これを設定する方法はまだ成功していません。 理論的には、選択したbatを実行するためにJava JDKバージョンを指定できるはずです。この機能を追加すると、より快適に使用できるようになります。 ご存知の方がいらっしゃれば、設定方法、コマンドグループの内容を共有していただければ幸いです。
共有 :
comments powered by Disqus

関連記事

Python PDF自作ツール

Python PDF自作ツール

便利で高速なプログラミング言語と豊富な拡張機能 私のPythonに対する印象は、書きやすく、デバッグしやすく、習得が速く、強力なバッチ処理ツール言語です。もちろん仕事で頻繁に使わないので、認識は比較的浅いです。 この時期、子供の効果的な復習を助けるために、両面スキャン可能なプリンターを購入した後、家庭用プリンターは商用ではないことに気づきました。いくつかの機能はまだ比較的不便です。 例えば、スキャンされたページは縦向きのみです。コンピューターで横向きで見るには、自分で回転させる必要があります。一部は冊子で、中央の綴じ線を除去してスキャンした後、ページを分割し、順序も再配置する必要があります。PDF編集ソフトウェアはありますが、このような単純な操作の作業量は依然として大きいです。 そして、多くのいわゆる無料PDF編集ソフトウェアには基本的な機能しかなく、インストールも必要です。少し高度な機能が必要になるとすぐにアップグレードやサブスクリプションが必要になります。 この時、まずPythonを思い浮かべました。

続きを読む
Git - Windows git環境で2つのコミット間のファイル差分を抽出しzipにパッケージ化する方法

Git - Windows git環境で2つのコミット間のファイル差分を抽出しzipにパッケージ化する方法

背景 仕事でGitを使い始めてしばらく経ちました。同僚はコマンドラインを直接使うことを勧めますが、私はやはりUIが好きです。SVN時代には、2回のコミット間の変更ファイルを抽出するのは非常に一般的な操作でした。Gitに切り替えてから、このコマンドをどう実現するか気になっていました。さまざまな方法があるのは知っていましたが、いつも自分の使い慣れた方法にはなりませんでした。 最近新しいアプローチを発見したので、整理して皆さんの参考に供します。

続きを読む