はじめに
Eclipseに限らずこいつをベースにした開発環境にも使える便利な小技をひとつ
Eclipseでは起動時にワークスペースの場所を入力してこれから作業するスペースを決めますが、これではいくつものプロジェクトを並行していじる場合に不便です。
Exlipseの起動オプションにワークスペースの場所を決め打ちする -data オプションがありますんで、それなら、と、-data オプションを設定してやったショートカットをたくさん用意し、デスクトップにでも並べておく、と、それぞれ起動してやるだけで、それぞれのワークスペースのプロジェクトが開いてくれて便利!かというと、それでもショートカットを作る手間がちとうざい、プロジェクトを開くショートカットの区別がつけづらい、とかいろいろ不満が出てきます。
ここからが本題
ってことで、それなら、その決め打ちするワークスペースディレクトリをカレントディレクトリにしてしまおう!というのがこの記事の主題となります。
そうすれば、
ショートカットを一度修正すればそれを使いまわせる、
作業ディレクトリを作り、そこにショートカットをコピーすればそんで作業環境の作成はOK、
実行時は、作業ディレクトリを開いてそこにあるショートカットを開くだけ、となり、いいことづくめとなります。
- 作業フォルダを空白にする
- リンク先の実行ファイル名の後ろに、-data ./ を挿入(ドットスラッシュ、スペースで区切るのを忘れずに)
これだけを修正して、OKボタンで終了させます
さて、あとはこのショートカットを任意のフォルダにコピーしておいて、実行させるだけです
そのフォルダが自動的にワークスペースとなり、プロジェクト環境が構築できます
Eclipseが動いてくれない場合
で、たいていの環境ではこれでうまく動いてくれるのですが、作業フォルダを空白にすると動いてくれない環境もあったりします
#起動時にエラーが出てくれるならいいんですが、何ごともなく起動がキャンセルされるだけってのがややこしい。。
カレントディレクトリを変えるとダメってことで、設定に相対ディレクトリの項目が残ってるため、と推察できます。
ってことで、例として、Pleiades2024-12_C/C++ を動くようにしてみます。
eclipse.exe と同じディレクトリに eclipse.ini (実行ファイルと同名の.ini)がありますんで、それをいじります
#戻せるように元のファイルはバックアップしておきましょう
....
-XX:InitialRAMPercentage=5
-XX:MaxRAMPercentage=25
-XX:TieredStopAtLevel=1
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
こいつの最終行がパスっぽい記述になっています
こいつかな?ってことで、これを
-XX:InitialRAMPercentage=5
-XX:MaxRAMPercentage=25
-XX:TieredStopAtLevel=1
-Xverify:none
-javaagent:D:/pleiades/2024-12/eclipse/dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
と、フルパスの記述にしてやります。
と、みごと!動くようになってくれます
追記
某所で、これで何が実現できるのか?という質問をいただいたのでちょっと追記します。
たとえば、e2StudioをあなたのPCにインストールし、いざ起動したとする、と、
こういうダイアログが出てワークスペースの場所を要求されることになります。
問題
毎日作業をしようとするたびに、フォルダを入力する作業。
入力をちょっと間違えてしまうと問答無用でそのフォルダにワークスペース用のファイル・フォルダを作ってくれます。それを探し出して削除する、という作業も追加されたりします。
ウザい。これはウザい。
私の黄金の右手はこんな無駄な作業をするために存在するもんではないのです。
ってことで解決編
ここで登場するのが今回の小技です。
ワークスペースとするために、デスクトップにUNIUNIフォルダを作ってみましょう。
そしてそのフォルダに、今回の小技を施したショートカットを置いてやります。
そして、このショートカットをダブルクリックするだけ、です。
これでこのフォルダがワークスペースとなってくれます。そのままプロジェクトを作り、コードを書き、ビルドします。
あとは、このフォルダを開き、このショートカットを実行するだけ、でプロジェクトが開いてくれます。