どこかのだれかのしやわせのために。
[このマクロについて]--------------------------------------------------
----------------------------------------------------------------------
【マクロ名】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で動作確認をしています。