A opção
-d do compilador serve para indicar o destino dos arquivos .class gerados. Assim,
javac -d classes com/MyClass.javairá colocar o arquivo MyClass.class gerado pelo compilador na pasta classes.
Vamos agora supor que MyClass.java pertence ao pacote com.acme. Sua declaração seria a seguinte:
package com.acme;
public class MyClass{...}
Neste caso, o comando
javac -d classes com/acme/MyClass.javavai colocar o arquivo
MyClass.class em
classes/com/acme, quer as pastas
com e
com/acme existam ou não. Caso não existam, ele irá criá-las. O diretório
classes, no entanto, precisa existir, caso contrário o compilador irá gerar um erro.