るし技研

どこかのだれかのしやわせのために。

[秀丸で開いたJavaソースコードをコンパイルし、クラスを実行する秀丸マクロセット]
 秀丸エディタでjavaのソースファイルを開いてこのマクロを実行すると、実行した秀丸エディタが開いているソースファイルをコンパイルします。
 マクロの実行開始時にCtrlキーが押されていた場合、ソースファイルの内容が実行可能であれば、コンパイル正常終了後には実行も行います。

  • 2008/02/20 - 1.00Beta2
    • バッチファイルの引数からカレントディレクトリを除外
    • ex_java.bat追加
    • _javac.bat, _java.bat削除
  • 注意事項
    • 1.00Beta1をお使いの方は、お手数ですが下記を削除してください。
      (消さなくても悪影響等は特にありません)
      • macrodir\_javac.bat
      • macrodir\_java.bat

  • ex_java.mac, ex_java.ini
    • 具体的な値が設定されたClassPathをnullに戻したいケースってあるかなあ?

[このマクロについて]--------------------------------------------------
----------------------------------------------------------------------
【マクロ名】ex_java 1.00Beta2
【登 録 名】ex_java_0100b2.lzh
【制作者名】る印@「るし技研」(auge2662@hotmail.com)
【動作環境】秀丸エディタとJDKが動作する環境
【公 開 日】2008/02/20
【作成方法】LHA形式で圧縮
【 種  別 】フリーウェア
【配布転載】圧縮ファイル自体についてはご自由にどうぞ
      内容の修正後配布、個別ファイルの再配布はお勧め致しかねます
【サ イ ト】http://psyx.niu.ne.jp/labo/ex_java/
【最 新 版】上記サイト
----------------------------------------------------------------------


-[バージョン&最新の修正内容]-----------------------------------------

2008/02/20 - 1.00Beta2
      バッチファイルの引数からカレントディレクトリを除外
      ex_java.bat追加
      _javac.bat, _java.bat削除


--[注意事項]----------------------------------------------------------

※1.00Beta1をお使いの方は、お手数ですが下記を削除してください。
 (消さなくても悪影響等は特にありません)
 ・macrodir\_javac.bat
 ・macrodir\_java.bat


---[概略]-------------------------------------------------------------

 秀丸エディタでjavaのソースファイルを開いてこのマクロを実行すると、実
行した秀丸エディタが開いているソースファイルをコンパイルします。
 マクロの実行開始時にCtrlキーが押されていた場合、ソースファイルの内容
が実行可能であれば、コンパイル正常終了後には実行も行います。


----[同梱のファイル]--------------------------------------------------

 このセットは以下のファイルで構成されています。

  ex_java.mac → 秀丸エディタから呼び出すマクロ。
  ex_java.ini → マクロ動作用設定ファイル。
  ex_java.bat → ソースをコンパイル/実行するバッチファイル。
  ex_java.dll → マクロが使う関数を収めたDLL。
  readme.txt  → 能書き。現在あなたが御覧のこのファイル。


-----[基本的な使い方]-------------------------------------------------

  1. 上記セットのうち「readme.txt」を除く4ファイルを、「マクロファイ
   ル用のフォルダ」にコピーしてください。

  ※「readme.txt」は動作に必要ありませんが、置いてあっても害にはなり
   ません。選別が面倒なら5ファイル纏めてコピーしても大丈夫です。

  ※「マクロファイル用のフォルダ」がどこであるかは、メニューを「その
   他」→「動作環境」の順で辿り、表示されるダイアログの「環境」で確
   認できます。
   そこに何も書かれていない場合は、実行されているhidemaru.exeと同じ
   フォルダです。

  2. 自作のパッケージを集積する場所が決まっている場合は、ex_java.ini
   を秀丸で開き、「ClassPath = 」に続けてパッケージのルートパスを書
   いてください。

   ex)ルートがD:\java_packagesの場合、内容はこのようになります。
<<<
[ex_java_default]
ClassPath = D:\java_packages
AutoSave = 1
Silent = 0
CommandCheck = 0
>>>

  3. テキストファイルを秀丸エディタで開き、ex_java.macを実行します。


------[お奨めの使い方]------------------------------------------------

  1. 上記セットのうち「readme.txt」を除く4ファイルを、「マクロファイ
   ル用のフォルダ」にコピーしてください。

  2. 自作のパッケージを集積する場所が決まっている場合は、ex_java.ini
   を秀丸で開き、「ClassPath = 」に続けてパッケージのルートパスを書
   いてください。

  3. メニューから「マクロ」→「マクロ登録」の順で辿り、
   ex_java.macを任意の場所に登録します。

  4. メニューから「その他」→「キー割り当て」の順で辿り、登録した
   ex_java.macにショートカットキーを割り当てます。

  5. ソースファイルを編集していて、コンパイルしたり実行したりしたく
   なったらショートカットでex_java.macを呼び出します。

 あとはオマケですが、作った僕がどんな風に使っているかというと、

 Alt + J     → ex_java.mac起動
 Alt + Ctrl + J → ex_java.mac起動

 のように、同じマクロを2箇所のショートカットに割り当てて、コンパイル
だけすればいい場合はAlt + J、実行もしたい場合にはAlt + Ctrl + Jで動か
すように使い分けをしています。


-------[補足]---------------------------------------------------------

 ex_java.macは以下のような動作をします。
 マクロをカスタマイズする際などに参考にしてください。

  1. ex_java.macはカレントファイルの拡張子が".java"かどうかをチェック
   する。異なる場合はその場で処理を終了する。
  2. ex_java.macはex_java.batを起動し、カレントファイルのコンパイルを
   実行する。
   ・コンパイルログのファイルサイズが0Byteでない場合はコンパイルエ
    ラーが発生しているので、秀丸でコンパイルログを開き、マクロを
    終了する。
  3. 条件が満たされている場合には、ex_java.macはex_java.batを起動し、
   カレントファイルに対応するクラスを実行する。
   ・実行時の標準出力ログが0Byteでない場合は、ex_java.macは秀丸で標
    準出力ログを開く。

---

 ex_java.macを起動した際、引き続きクラスの実行を行うのは、以下の条件
がすべて満たされている場合です。

 ・マクロ起動時点でCtrlキーが押下されている
 ・コンパイルするソースの中に文字列「void main」が存在する
 ・コンパイルが正常終了する(コンパイルログのファイルサイズが0Byte)

---

 ex_java.iniに関する情報です。
 現在、INIファイルから取得する値は以下の通り。

 ・ClassPath
  →パッケージファイルのルートディレクトリです。
   何か値が指定されている場合は、javac.exeやjava.exeを実行する際、
   オプション「-classpath」の値として渡されます。

 ・NoAutoSave = 0
  →この値が0の場合、ex_java.macはコンパイル前にソースファイルをセー
   ブします。
   1の場合はセーブしません。

  ※コンパイル→エラー→修正して再コンパイル、のような作業の際、ソー
   スファイルのセーブを失念していると、修正前の間違ったソースを延々
   コンパイルし続けるような事態になりかねませんので、基本的には0の
   まま使うのがよいのではないかと思います。

 ・Silent = 0
  →この値が1の場合、0バイトのログファイルを開く代わりに表示している
   終了通知ダイアログが表示されなくなります。

 ・CommandCheck = 0
  →この値が1の場合、javac.exeやjava.exeを実行する寸前に、バッチファ
   イルがpauseで停止します。これからコマンドライン上でどのような命
   令が実行されるかを確認したい場合に1にします。
   続きを実行するためには、何か適当なキーを押してください。

 ex_java.iniからの情報は、現状では3回取得される仕様です。
 取得順序は以下の通り。

 1.[ex_java_default]セクションの情報
 2.[(実行したコンピュータ名)]セクションの情報
 3.[(実行したソースファイル内のクラス名)]セクションの情報

 なお、情報が重複する場合は上記順序における後優先、取得できなかった場
合は取得前の状態を維持します。
 例えば、
<<<
[ex_java_default]
ClassPath = D:\java_packages
NoAutoSave = 0
Silent = 0
CommandCheck = 0

[comp1]
ClassPath = F:\java\packages

[Hello]
CommandCheck = 1
>>>
 このように設定されているとすると、それぞれの場合におけるコンパイル時
の設定情報は以下になります。

 ・コンピュータ名が「comp1」のマシンで、

  ・クラス「Hello」をコンパイル
   →ClassPath = F:\java\packages
    NoAutoSave = 0
    Silent = 0
    CommandCheck = 1

  ・クラス「Hello」以外をコンパイル
   →ClassPath = F:\java\packages
    NoAutoSave = 0
    Silent = 0
    CommandCheck = 0

 ・コンピュータ名が「comp1」以外のマシンで、

  ・クラス「Hello」をコンパイル
   →ClassPath = D:\java_packages
    NoAutoSave = 0
    Silent = 0
    CommandCheck = 1

  ・クラス「Hello」以外をコンパイル
   →ClassPath = D:\java_packages
    NoAutoSave = 0
    Silent = 0
    CommandCheck = 0

 なお、すべてのケースで何も値を取得しなかった場合(INIファイル自体がな
い、などのケース)には、以下が設定されたものとして処理を続行します。
 →ClassPath =
  NoAutoSave = 0
  Silent = 0
  CommandCheck = 0

---

 hmutl.dll上に実装された関数のインターフェイスは次の通りです。

| extern "C" int GetSize(LPTSTR TargetFileName);

| 引数 :
|  LPTSTR TargetFileName → 情報を取得するファイルのフルパス名称

| 終了値 : 0以上(正常終了) / -1(異常終了)
|   0以上 → TargetFileNameのファイルサイズ
|    -1 → 異常終了


---------[履歴]-------------------------------------------------------

2008/02/20 - 1.00Beta2
      バッチファイルの引数からカレントディレクトリを除外
      ex_java.bat追加
      _javac.bat, _java.bat削除

2008/02/16 - 1.00Beta1
      暫定公開


---------[免責事項その他]---------------------------------------------

・免責  :このマクロによってどんな被害を蒙っても責任はとれません。
     :御意見御希望その他諸々が必ず反映されるとは限りません。
     :という前提ですが、できるだけのことはしたいと思います。
・開発環境:秀丸エディタ Version7.08Beta5
     :Microsoft VisualC++.NET
     :WindowsXP Professional(SP2)
     :ExpLzh Version5.23
     :Windows2000 Professional(SP4)


======================================================================

©2007- "るし技研(仮)" ALL RIGHTS RESERVED.
Internet Explorer 6.xで動作確認をしています。