単一ファイルでのコンパイル+実行マクロなら以前つくったことがあるので
参考までに載せておきます。
なんやらメッセージボックスがでてうざったいですがw
// Javaコンパイル + 実行マクロ
var
strFileExt : String; // ファイル拡張子文字列変数
strJavaHome : String; // JavaHomeパス文字列変数
strCommand : String; // 実行用コマンド文字列変数
intResult : Integer; // メッセージボックス返却値用変数
begin
// 拡張子の取得
strFileExt := Delete( S_ExpandParameter( '$f' ), 1, Length( S_ExpandParameter( '$g' ) ) );
// 取得した拡張子文字列を小文字に変換
strFileExt := LowerCase( strFileExt );
// 拡張子が.javaまたは.javでない場合
if CompareStr( strFileExt, '.java' ) <> 0 and CompareStr( strFileExt, 'jav' ) <> 0 then
begin
// 警告メッセージを表示
MessageBox( 'Javaファイルではありません。', 'Javaコンパイル', $10 );
// 終了
Exit;
end
;
// メッセージボックス戻り値の初期値を設定
intResult := 0;
// コンパイル、コンパイル + 実行、 キャンセルの実行選択メッセージの表示
case MessageBox( '実行もしますか?', 'Javaコンパイル', $23 ) of
// キャンセルの場合
2:
// 終了
Exit;
// いいえの場合
7:
// アップレットビューアの実行選択メッセージの表示
intResult := MessageBox( 'アップレットビューアで表示しますか?', 'Javaコンパイル', $24 );
end;
// JavaHomeのパス設定
strJavaHome := 'D:\Program Files\Java';←ここを変更
// コンパイル用コマンド文字列を設定
strCommand := strJavaHome + '\bin\javac ' + S_ExpandParameter( '$f' );
// Javaコンパイル実行
S_ExecCommand( strCommand, 1 );
// メッセージボックスの戻り値によって切り分け処理
case intResult of
// 実行する場合
0:
// 実行用コマンド文字列を設定
strCommand := strJavaHome + '\bin\java ' + S_ExpandParameter( '$g' );
// アップレットビューアで表示する場合
6:
// アップレットビューア表示用コマンドを設定
strCommand := strJavaHome + '\bin\appletviewer ' + S_ExpandParameter( '$f' );
// いいえを選択した場合
7:
// 終了
Exit;
end;
// コマンドを実行
S_ExecCommand( strCommand, 1 );
end