2016-10-17 21 views
0

からJavaへの引数として渡されたファイルを解析します。は、私は、このリンクをたどるしようとしていますコマンドライン

私がアプリケーションに送る必要のあるファイルは、主に2です。ファイル1とファイル2を呼び出しましょう。

私はのようなJavaを呼び出すことができます希望:同時に決して

/usr/bin/java -jar myapplication.jar -f file1 

または

/usr/bin/java -jar myapplication.jar -s file2 

私が投稿したリンクでは、ファイルである引数をvoid mainに渡す方法を理解できません。私は-f -s形式で引数を必要とすることを理解する前に

マイコード:

public class myApp { 
    public static void main(String[] args) throws IOException, JAXBException, SQLException { 
     Database db = new Database(); 
     if (args.length == 0) { 
      System.out.println("No arguments were given.\n"); 
      db.disconnect(); 
     } 
     else { 
      System.out.println("Got the argument.\n"); 
      File file = new File(args[0]); 
      String namefile = file.getName(); 

      switch (namefile.substring(0, 6)) { 
       case "FILE01": 
        System.out.println("Processing file type FILE01: "+namefile); 
        Process_filezeroone program_zeroone = new Process_filezeroone(); 
        program_zeroone.process(file, namefile); 
        break; 
       case "FILE02": 
        System.out.println("Processing file type FILE02: "+namefile); 
        Process_filezerotwo program_zerotwo = new Process_filezerotwo(); 
        program_zerotwo.process(file, namefile); 
        break; 
       default: 
        System.out.println("Skipping: "+namefile); 
        db.disconnect(); 
      } 
     } 
    } 
} 

は、任意の助けてくれてありがとう。

+0

私はあなたの問題が何であるか完全に理解していませんが、おそらくApache Commons CLIを見てみるべきです:https://commons.apache.org/proper/commons-cli/ また、メソッド名と変数名が強調されています。 –

+2

渡すか解析しますか?彼らは非常に異なるものです。 – byxor

+0

argsを通過したファイルを解析します。これは正しいと思います(?) - OKこのリンクを見ています。ヒントをありがとう – Nihvel

答えて

3

最初の引数(-f/-s)にスイッチを入れてください。あなたは

myApp.main(new String[] { "-s", "file2" }); 

myApp.main(new String[] { "-f", "file1" }); 

と同じ第2の場合にはを持っている最初のケースで

File file; 
switch(args[0]){ 
    case "-f" : 
     file = new File(args[1]); 
     //do stuff with file1 
     break; 
    case "-s" : 
     file = new File(args[1]); 
     //do stuff with file2 
     break; 
    default : 
} 
+0

ああ、私はそれを考えていません!信じられないほど簡単に見える。申し訳ありませんが、私はこの方法を試して、私が助けることができるかどうかを見てみましょう – Nihvel

+0

申し訳ありませんが、私はそれが解決されたと思います!どうもありがとう! – Nihvel

0

非常に簡単です。これを実装するには、java.io.File APIを使用してください。

File f = new File(args[0]); 

ファイルを操作するためにInputStreamを使用します。

+0

私はあなたが50ポイント未満ですが、私はすでにこのコードを使用しています。これは、私はこれを、ダッシュと文字のついたものに切り替える必要があります:-f(たとえば)。 申し訳ありませんがあなたの答えは助けにはなりません – Nihvel

0

あなたは引数が混乱見つけた場合、私はあなたがを見て、あなたのデバッガを使用することをお勧め配列または引数を出力します。

switchを使用して切り替えたり、if/else ifステートメントを使用したりできます。

+0

私は正しく理解しているのか分かりませんが、他の回答を読むと、私はargs []の意味を誤解していたと思います。これの横に、私はあなたが示唆したコードを使用するかどうかわかりません(または、より良い、私はどこでも見ていないmyApp.main表記)私はこのプロジェクトのためだけにJavaを必要とします – Nihvel

+0

@Nihvelコードはあなたに何を示しています上記のコードを実行するとJVMが動作します。あなたに渡される文字列の配列には何も特別なものはありません。すでに行っているのと同じ方法で確認できます。 'switch'は何も特別なものではありません。混乱がどこにあるのかは明らかではない。 –

+1

さて、私はそれを理解しました!説明をありがとう!私はJavaに熟練していないので、完全に私を助けません。私の場合、おばあちゃんの証拠の答えがうまく受け入れられました。とにかく、それを得た。ありがとう! – Nihvel

関連する問題