Pessoal, estou estudando as ferramentas Java pela linha de comando, mas há alguns conceitos que ainda estão meio obscuros para mim.
Vou colocar aqui o exemplo em que estou trabalhando.
[my project]
|
|
|------[source]
| |
| |------[com]
| | |
| | |-----[wickedlysmart]
| | |
| | |-----BankAccount.java
| |
| |-----[stuff]
| |
| |-----[wickedugly]
| |
| |-----Person.java
|------[classes]
|
|------[com]
| |
| |-----[wickedlysmart]
| |
| |-----BankAccount.class
|
|-----[stuff]
|
| -----[wickedugly]
|
|-----Person.class
A classe BankAccount.java:
package com.wickedlysmart;
import stuff.wickedlyugly.Person;
public class BankAccount {
public String accountNumber;
public Person owner = new Person();
public static void main(String[] args) {
BankAccount ba = new BankAccount();
ba.owner.name = "Dexter Morgan";
ba.owner.city = "Miami";
System.out.print(ba.owner.name + "-" + ba.owner.city);
}
}
A classe Person.java:
package stuff.wickedlyugly;
public class Person {
public String name;
public String city;
}
Objetivo: Compilar e executar a classe BankAccount.java.
Passo 1. A classe BankAccount necessita da classe Person, portanto entrei no dir my project\source\stuff\wickedlyugly e executei javac -d …\classes Person.java
Passo 2. Agora tenho o Person.class, e posso compilar a classe BankAccount. entrei no dir \my project\source\com\wickedlysmart e executei javac -cp …\classes -d …\classes BankAccount.java
Passo 3. Executar: Entrei no dir my project\classes\com\wickedlysmart e executei java -cp …\classes com.wickedlysmart.BankAccount
A minha dúvida é no passo 3. Quando eu passo esse caminho do classpath -cp …\classes, como a JVM o interpreta? À partir dele a JVM procura e vê se encontra um dir chamado com e daí vê se encontra um outro chamado wickedsmart, para daí ver se encontra o arquivo BankAccount.class? E também à partir desta pasta a JVM procura por stuff\wickedugly\Person.class?