Compilação na linha de comando não identifica classes instanciadas do mesmo pacote?

Compilo um código simples na ide, quatro classes, incluindo a principal. Porém, quando tento compilá-lo em linha de comando, ele não reconhece as classes instanciadas. Quero salientar que as quatro classes encontram-se no mesmo pacote.

O erro que aparece:

javac conta.java
conta.java:9: error: cannot find symbol
Cliente titular;
^
symbol: class Cliente
location: class Conta
conta.java:10: error: cannot find symbol
Data dataAbertura;
^
symbol: class Data
location: class Conta
conta.java:18: error: cannot find symbol
titular = new Cliente(nomeCliente, sobrenomeCliente, cpfCliente);
^
symbol: class Cliente
location: class Conta
conta.java:19: error: cannot find symbol
dataAbertura = new Data();
^
symbol: class Data
location: class Conta
4 errors

Segue o código da classe que não está compilando:

package caelum;

public class Conta{

	int numero;
	String nomeConta, sobrenomeConta, cpfConta;
	String agencia;
	double saldo;
	Cliente titular;
	Data dataAbertura;
	
		
	Conta(String nomeCliente, String sobrenomeCliente, String cpfCliente){
			
		nomeConta = nomeCliente;
		sobrenomeConta = sobrenomeCliente;
		cpfConta = cpfCliente;			
		titular = new Cliente(nomeCliente, sobrenomeCliente, cpfCliente);
		dataAbertura = new Data();
		
	}
		
	void saca(double vrSaque){
		saldo -= vrSaque;
	}

	void deposita(double vrDeposito){
		saldo += vrDeposito;
	}
	
	double calculaRendimento(){
		double rendimento = saldo * 0.1;
		return rendimento;
	}
	
	void transfere (Conta destino, double valor){
		this.saldo -= valor;
		destino.saldo += valor;
	}
	
	String recuperarDadosParaImpressao(){
		String dados = titular.getDadosCliente();
		dados += "\nConta: " + numero;
		dados += "\nAgência: " + agencia;
		dados += "\nO saldo da conta é: R$" + saldo;
		dados += "\nCliente desde: " + dataAbertura.formataData(dataAbertura.dia, dataAbertura.mes, dataAbertura.ano);
		return dados;
	}

}

Você está executando o comando a partir de qual diretório? O mesmo das classes ou o que contém o package “caelum”?

O mesmo das classes.

O estranho é que se retiro a primeira linha do código, compila normalmente na linha de comando. Daí, tenho o problema inverso na ide, que não compila sem a declaração do package.

A declaração do package faz diferença total no processo de compilação.
Volte um nível (cd …) e então execute

javac caelum/conta.java

Obs.: Em java, o nome das classes e dos arquivos começam, sempre, com letra Maiúscula.

Então, sempre que declarar um package, compilo a app no diretório anterior ao dele. Eu uso as iniciais maiúsculas, só o comando javac que não é case sensitive, rs. Muito obrigada!

Quase isso. Você vai executar o comando do diretório raiz.
Exemplos: para o arquivo Teste.java, no package br.com.aplicacoes, você executa o comando com o prompt no mesmo diretório que br.

javac br/com/aplicacoes/Teste.java

Para o arquivo Teste.java, no package com.study.program, executa no mesmo diretório que o com

javac com/study/program/Teste.java

Por experiência, posso dizer que é difícil ter de compilar utilizando o javac. O mais comum é o uso de uma IDE como Eclipse ou Netbeans.

Eu estou seguindo uma apostila da Caelum aqui, para ter uma orientação sobre a sequência de conteúdos a estudar e estou testando tanto em linha de comando quanto no Eclipse. Imagino que em aplicações robustas seja quase impossível trabalhar com linha de comando. Mais uma vez, muito obrigada Luis!