I'm working out how to compile java from command line at the moment. Here's what I've got:

Here's what I've got:

```

/myjava/compile.cmd
/myjava/src/a_pack/HelloWorld.java
/myjava/src/b_pack/Inner.java
/myjava/src/b_pack/Inner2.java
/myjava/bin

```

HelloWorld:

```

package a_pack;

import b_pack.Inner;
import b_back.Inner2;
import java.util.ArrayList; 
import java.util.Iterator; 

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello, World");     

        Inner myInner = new Inner(); 
        myInner.myInner(); 

        Inner2 myInner2 = new Inner2();
        myInner2.myInner(); 

        ArrayList myArray = new ArrayList(); 
        myArray.add(1); 
        myArray.add(2); 
        myArray.add(3); 

        Iterator itr = myArray.iterator();
        while (itr.hasNext())
        {
            System.out.println(itr.next()); 
        }

    }

}

```

Inner.java

```

package b_pack; 

public class Inner {

    public void myInner() {
        System.out.println("Inner Method");
    }

}

```

Inner2.java

```

package b_pack; 

public class Inner2 {

    public void myInner() {
        System.out.println("SecondInner");
    }

}

```

I'm compiling this with `javac -d bin -sourcepath -src src/a_pack/HelloWorld.java` 
and this works fine. 

Now my understanding is, that because the HelloWorld.java references the other packages in it's import statements, then javac goes and compiles those. 
And I'm guessing that for all the java packages, javac has them internally or something. 

Anyway - 
if I add the following import line to HelloWorld.java

`import java.nio.file.Files`;

it fails with 

```

D:\.....\myjava>javac -d bin -sourcepath src src/a_pack/HelloWo
rld.java
src\a_pack\HelloWorld.java:8: package java.nio.file does not exist
import java.nio.file.Files;
                    ^
1 error

```

What's the story here? Why are some java packages good and some not?