title: Passing in a file name / directory into command line in Java
body: <p>I'm trying to do some processing on whether the user enters a (1) file name, or (2) directory name into the command line.  Anything else should throw an error.  Starting with the simplest case, I wrote this:</p>
  
  <pre><code>import java.io.*;
  import java.util.*;
  
  public class RemoveDuplicates {
  
      public static void main(String[] args) {
          if (args.length != 1) {
              System.out.println("Program accepts one command-line argument.  Exiting!");
              System.exit(1);
          }
          File f = new File(args[0]);
          if (f.isDirectory()) {
              System.out.println("is directory");
          }
          else if (f.isFile()) {
              System.out.println("is file");
          }
          else {
              System.out.println("Shouldn't happen");
          }
      }
  }
  </code></pre>
  
  <p>at the command line, I type: java RemoveDuplicates example.txt
  and I get the reuslts, "Shouldn't happen."  I also tried java RemoveDuplicates "example.txt" and that doesn't work either.  So I was wondering if my code is wrong, or how I'm passing it into the command line is wrong for starters.</p>
  
  <p>Secondly, how do you pass in a directory name?  Like if your directory was myDirectory, is it the same thing: java RemoveDuplicates myDirectory</p>
  
  <p>Third, why if I put my File f = new File(args[0]) into a try block and have a catch block, I get a compile error about what is in my try block never throws an exception.  I thought File threw an exception? Thanks in advance!</p>