◀マクロトップへ
  • 121 Java用エディターとしての使用と自動コンパイル等
    • 122 Re:Java用エディターとしての使用と自動コンパイル等
      • 124 Re2:Java用エディターとしての使用と自動コンパイル等
        • 125 Re3:Java用エディターとしての使用と自動コンパイル等
          • 126 Re4:Java用エディターとしての使用と自動コンパイル等
            • 127 Re5:Java用エディターとしての使用と自動コンパイル等
              • 128 Re6:Java用エディターとしての使用と自動コンパイル等
                • 129 Re7:Java用エディターとしての使用と自動コンパイル等
                  • 135 Re8:Java用エディターとしての使用と自動コンパイル等
                    • 136 Re9:Java用エディターとしての使用と自動コンパイル等
  • [121] Java用エディターとしての使用と自動コンパイル等 青二才 2004年11月19日 17:59

    最近Javaの勉強を始めて、Java用エディターとして使用しているのですが、
    自動コンパイル、自動実行等のマクロは作成できるのでしょうか?
    標準のコマンドマクロだとちょっと厳しいのでしょうか?
    ファイル名の取得と、コマンドプロンプトを開く事はできるのですが、
    実行までは、無理なのでしょうか?
    また、PPAで記述すれば可能でしょうか?
    ご存知の方がいらっしゃいましたら、ご教授いただければ幸いです。


    コンパイル
    1.現在のファイル名を取得。
    2.コマンドプロンプトを開いて、Javac 「ファイル名.java」を引き渡し、実行。

    自動コンパイル
    1.現在のファイル名を取得。
    java 「ファイル名」を引き渡し、実行。
    • [122] Re:Java用エディターとしての使用と自動コンパイル等 しみづ 2004年11月20日 13:25


       ちなみに、「ツール」-「外部コマンド実行」では不十分なのでしょうか。
      • [124] Re2:Java用エディターとしての使用と自動コンパイル等 青二才 2004年11月20日 19:48

        ▼ しみづさん
        ご回答ありがとうございます。
        外部コマンド実行で、取得したファイル名を引き渡せないのと、
        コンパイルを実行できないんです。
        起動したコマンドプロンプトで、手動で貼り付けを実行すれは、
        ファイル名は、確かに張り付きますが・・・

        >
        >  ちなみに、「ツール」-「外部コマンド実行」では不十分なのでしょうか。
        • [125] Re3:Java用エディターとしての使用と自動コンパイル等 しみづ 2004年11月21日 00:37


          >外部コマンド実行で、取得したファイル名を引き渡せないのと、
          >コンパイルを実行できないんです。
          >起動したコマンドプロンプトで、手動で貼り付けを実行すれは、
          >ファイル名は、確かに張り付きますが・・・

           どうも状況がよく飲み込めないのですが、もうマクロを組んで動かしてみたということでしょうか。S_ExecCommand( 'java $F', 1 )を実行してみたということでしょうか?
          • [126] Re4:Java用エディターとしての使用と自動コンパイル等 もか 2004年11月21日 02:50

            javacの引数はファイル名ですが、java の引数はクラス名です。
            ですから、実行したいmainを含むクラスの名前=ファイル名であれば、外部コマンド実行、「java $g」で動きます。
            しかし、そのままでは一瞬で終わって見れないので...
            Win2000/XP系なら、「cmd /K java $g」とするのがいいです。
            • [127] Re5:Java用エディターとしての使用と自動コンパイル等 しみづ 2004年11月21日 06:24


              >javacの引数はファイル名ですが、java の引数はクラス名です。

               なるほど。私はJAVAは全然触れたことがないので違いましたか。

               私が最初に聞いたのは、メニューから「ツール」-「外部コマンド実行」画面を出して javac $F のように入力すれば、マクロを作って「ファイル名の取得」をする必要なくコンパイルぐらいのことはできるのでは、と思ったからでした。
              • [128] Re6:Java用エディターとしての使用と自動コンパイル等 青二才 2004年11月21日 09:49

                ▼ しみづさん
                ▼ かもさん
                ご回答ありがとうございます。

                S_ExecCommandでcmd.exeを呼び出すのはやってみたんですが、
                ファイル名の引き渡し方がよくわかってませんでした。

                cmd.exeをKオプション付きで呼び出して実行、または、javacを直接呼出し、
                output(でしたけっけ?)に出力が可能のようですね。

                ファイル名=クラス名で作成しない場合があるので、
                その辺は必要に応じて実施してみます。

                月曜日に学校で試してみます。
                ありがとうございました。
                • [129] Re7:Java用エディターとしての使用と自動コンパイル等 しにゃ 2004年11月21日 17:43

                  単一ファイルでのコンパイル+実行マクロなら以前つくったことがあるので
                  参考までに載せておきます。
                  なんやらメッセージボックスがでてうざったいですが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
                  • [135] Re8:Java用エディターとしての使用と自動コンパイル等 清水 2004年11月27日 01:07

                    >単一ファイルでのコンパイル+実行マクロなら以前つくったことがあるので
                    >参考までに載せておきます。
                    >なんやらメッセージボックスがでてうざったいですがw

                    このようなマクロ私も探してました。
                    それで、登録してみましたがPPA実行エラー、文法エラーです
                    と出てしまい、動作しません。
                    どこか文法が間違っているのでしょうか?
                    • [136] Re9:Java用エディターとしての使用と自動コンパイル等 しにゃ 2004年11月29日 08:33

                      ▼ 清水さん
                      > >単一ファイルでのコンパイル+実行マクロなら以前つくったことがあるので
                      > >参考までに載せておきます。
                      > >なんやらメッセージボックスがでてうざったいですがw
                      >
                      > このようなマクロ私も探してました。
                      > それで、登録してみましたがPPA実行エラー、文法エラーです
                      > と出てしまい、動作しません。
                      > どこか文法が間違っているのでしょうか?

                      // JavaHomeのパス設定
                      strJavaHome := 'D:\Program Files\Java';←ここを変更

                      この行は変更してありますか?