コマンドラインとAPIを兼ねたアプリの作り方

このQ&Aのポイント
  • Javaでコマンドプロンプトからの入力にもAPI呼び出しにも対応するアプリを作成する方法を教えてください。
  • コマンドプロンプトとAPIの両方に対応したアプリをJavaで作成したいですが、どうすれば良いでしょうか?初心者の私にアドバイスをお願いします。
  • JavaでコマンドラインとAPIの双方に対応したアプリを作成する方法について教えてください。初心者なので、コピペばかりになってしまうような作り方は避けたいです。
回答を見る
  • ベストアンサー

コマンドラインとAPIを兼ねたアプリの作り方を教えて下さい。

コマンドラインとAPIを兼ねたアプリの作り方を教えて下さい。 おかしなタイトルですが、Javaでコマンドプロンプトからの入力にもAPI呼び出しにも対応するものを作成したいです。ですが、どういう作りにすればよいかよくわかりません。一応、以下のように考えましたが、初心者丸出しという感じです。ほとんど同じコードのコピペになってしまいますし…。Javaの経験が長い方でしたらどのように作られるでしょうか。アドバイスをお願い致します。 // アプリ本体 class Apri {  public Apri(){   // 外からAPIで呼び出された時のコンストラクタ   // ログの初期化など  }  // mainには、コマンドプロンプトからの入力を想定した処理を書く  public static void main( String args[] ){   // 引数の解釈、ログの初期化など      // 引数のargs[]に、コマンドプロンプトからのコマンドが入ってくるとする   if( args[0].compareTo("A")==0 ){    // コマンド"A"の処理   } else if( args[0].compareTo("B")==0 ){    // コマンド"B"の処理   }  }  // API呼び出し時の処理  public void exec( String command ) {   if( command.compareTo("A")==0 ){    // コマンド"A"の処理   } else if( command.compareTo("B")==0 ){    // コマンド"B"の処理   }  } (1)コマンドプロンプトからの呼び出しの場合 >java Apri A >java Apri B (2)API呼び出しの場合 // API呼び出しをするよそのクラス class OtherClass {  public static void main(String args[]) {   // アプリの生成   Apri apri = new Apri();      // APIによる呼び出し   apri.exec("A");   apri.exec("B");  } }

  • aneja
  • お礼率93% (379/405)
  • Java
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • ketuago65
  • ベストアンサー率50% (13/26)
回答No.1

必要な処理は全てメソッドを作ってそこに書いておき、main()から必要なメソッドを呼べばいいんじゃないでしょうか? 上のプログラムの例で言えば、 public static void main(String[] args){ Appli app = new Appli(); app.exec(args[0]); } のようにすれば(1),(2)どちらでも同じ結果になります。 あと余談ですが、等しいかどうかを調べるのであればcompareToよりもequals()をつかったほうが一般的な気がします。 まぁ本題とは関係ないことですが(笑)

aneja
質問者

お礼

早速のご回答、どうもありがとうございました。なるほど、そうすれば無駄がないですね。equals()の方は存在すら知りませんでしたので、覚えておきます。ありがとうございました。

関連するQ&A

  • コマンドラインがわかりません!!

    (質問) (1)コマンドラインというのがわかりません。 (2)下の説明のところが全部わかりません。 よろしくおねがいします!! -------------------------------------------------- (説明) ファイルを処理するとき、ファイル名指定はコマンドラインから行うのが便利です。Javaではコマンドライン引数はmain( )メソッドの引数として次のように用意されています。 public static void main (String args[ ]) { ・・・・・ } このargs引数を使うと、コマンドラインから入力されたパラメーターを次のように取得できます。 最初のパラメーター文字列は0です。 args.length args[0] args[1] args [2]  ・  ・  ・

    • ベストアンサー
    • Java
  • コマンドライン引数はどこからやって来たのですか?

    こんにちは Javaで、 public static void main(String args[]) という引数は、どこからやって来たのでしょうか? これがコマンドラインに初めて書かれる文だとしたら、どこから引数を貰うのでしょうか? また、2番目に書いたクラスだったとしても、他のクラスのなかのものをそんな簡単に貰うことはできるのでしょうか? もし宜しければ回答お願い致します。

    • ベストアンサー
    • Java
  • コマンドプロンプトに文字を表示

    コマンドプロンプトに文字を表示したいと思っています。 public class Print { public static void main(String[] args) { System.out.println("test"); } } とソースを作り、 Print.java java Print とコマンドプロンプトより実行すると、"test"と予想通りに表示されます。 しかし、eclipsより「Print.jar」とjarファイルを作成して、コマンドプロンプトより実行すると表示されません。 C:\>Print.jar C:\> jarファイルよりコマンドプロンプトに文字を出力する事は出来るのでしょうか。 batファイルを作成して、 java Print と入力して実行するしかないでしょうか。 要はバッチ処理中に処理経過を表示したいのです。

  • コマンドライン引数の掛け算のプログラムを教えて下さい。

    コマンドライン引数で*で掛け算するプログラムを作成しています。 「"*"」の入力なしに c:\myweb\keisanmain>java myweb.Keisanmain.Keisan 1 * 2 を実行してくれる掛け算のプログラムを自分なりにここまで作成しました。 実行の結果 c:\myweb\keisanmain>java myweb.Keisanmain.Keisan 1 * 2 Exception in thread "main" java.lang.NoClassDefFoundError: myweb/Keisanmain/Keisan というバグがでます。 どうかわかる方お時間があるときに教えて下さい。 package myweb.keisanmain; class Mainkeisan{ public static void main (String args[]){ if(args.length == 0){ }else if(args.length == 1){ }else if(args.length == 2){ }else if(args.length == 3){ /** *c:\myweb\keisanmain>java myweb.Keisanmain.Keisan 1 * 2 Exception in thread "main" java.lang.NoClassDefFoundError: myweb/Keisanmain/Keis an */ double num =0.0; Integer a = new Integer("args[0] * args[1]"); double b = a.doubleValue(); System.out.println(b); } } }

    • ベストアンサー
    • Java
  • JAVAのコマンドラインについて

    コマンドラインで-sを入れた時に String uwagaki = "-s" if (uwagaki.equals(args[0])) とこうしてコマンドラインで入れたのは-sなのかifで確認しています。 しかし、コマンドラインを入力しないとエラーが起こってしまいます。 どのように対処したらいいでしょうか?

    • ベストアンサー
    • Java
  • コマンドラインで配列0~1番目入力したときは?

    使う言語はJava 例えばこんな感じで入力した場合、コマンドラインの配列0~1番目を入力したときコマンドラインでの配列1番目の文字列を値を出力するにはどうしたらいいのでしょうか? コマンドラインを使ってのサンプルソースがあんまり無かった為質問します。 まだまだ初心者脱却していないのでご指導ご鞭撻のほどお願いします。 お早い回答お待ちしています。 java Sample 2012年 1月 1月 考えたサンプルソースはこうです。 public class Ensyuu158 { /** * @param args */ public static void main(String[] args) { for(int i=0; i<args.length; i++){ if(args[i].equals(args[0])){ methodA(args[0]); }else if(args[i].equals(args[1])){ methodB(args[1]); } } }     //コマンドライン配列0~1番目が入力されたら1番目だけの文字列の値を出力する private static void methodB(String str) { System.out.println(str); }     //コマンドラインでの配列0番目が入力されたら0番目だけの文字列の値と文字列を出力したい private static void methodA(String str) { System.out.println(str+"月"); } } }

  • javaプログラミングにおけるバッチファイル起動

    JavaのプログラムからNetbeansを用いてバッチファイルを起動させることを考えています。 以下のようにプログラムを作成したところ、コマンドプロンプトの画面は表示されるのですが、バッチファイルの中身が起動されません。 どのようにしたらよろしいかお知恵を拝借願います。 public class Open_JTalk { private Process p; private void start() { try { //String command = "cmd.exe /c start"; String command = "cmd.exe /c start lib/open_jtalk/m001_106.bat"; p = Runtime.getRuntime().exec(command); } catch (Exception e) { } } public static void main(String args[]) { Open_JTalk jtalk = new Open_JTalk(); jtalk.start(); } } バッチファイルを動かすのみの処理で、 String command = "lib/open_jtalk/m001_106.bat"; とした場合は何も処理されずにプログラムが終了してしまいます。 また、バッチファイルはlib/open_jtalk/に配置済みです。 ディレクトリのbatファイルをクリックで動かした場合には正常に起動しています。 どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • コマンドライン引数 java

    学校で、2進数表記された文字列number1、number2…numberNを数値に変換し、合計を算出し、2進数表記の文字列に変換した結果を出力するプログラムを組む課題が出ました。 java Lesson06 number1 number2 … numberN の形式で受け取ったコマンドライン引数を元に、処理を行います。 ※number1からnumberNは、全て0か1のみで構成されている文字列 * 文字列の加算 * System.outまたはSystem.errのprint系メソッドで、Stringの値を受け取るもの以外 * Integerなどのラッパークラス * DecimalFormatなどの書式変換クラス 上記の機能は使ってはいけません。 ---- class Lesson{  public static void main(String args[]){   int sum;   for(int i = 1; i < args.length; i ++) {    int len = strlen(args[i]);//※    for(int j = 0; j < len; j ++) {     if(args[i][len - j - 1] == "1") {//※      sum = pow(2, j) + sum;//※     }    }   }  } } ---- とりあえず、与えられた二進数を計算する部分まで作ってみたのですが、※の部分でエラーが出てしまいます。 コマンドライン引数もよく分からなくて困っているので、教えていただければ助かります。 以上よろしくお願いいたします。

    • ベストアンサー
    • Java
  • コマンドライン引数を用いて。

    コマンドライン引数を用いて足し算をさせるプログラムです。 class goukei{ public static void main(String args[]){ int i, count; int sum = 0; int a[]; count = args.length; for(i=0; i<args.length; i++){ int arg_i = Integer.parseInt(args[i]); sum = sum + arg_i; } System.out.println("引数の数は" + count); System.out.println("合計は" + sum); } } と考えたのですが、もっとこうしたほうがいいという部分があれば教えてください。 一応これでできているとは思うのですがイマイチ自信がありません・・・。

    • ベストアンサー
    • Java
  • コマンドラインの文字列を違うメソッドに渡す。

    コマンドラインに入力された文字列を同じクラス内の 違うメソッドから利用したいのですが、 mainでは method(args[]); method側では、 method(String args[]) としていますが、エラーがでます。 javac hoge.java hinshiExtract.java:149: '.class' がありません。 countTango(args[]); ^ hinshiExtract.java:149: ')' がありません。 countTango(args[]); お願いします。 ^

    • ベストアンサー
    • Java

専門家に質問してみよう