Os pacotes em Java são utilizados para organizar os seus arquivos fontes e também para estabelecer níveis de acesso/visibilidade entre classes e entre membros de classes (métodos, campos, classes internas).
Os pacotes não são um conceito somente lógico, mas também físico. Quando vc declara no topo da sua classe:
package lib.entidades;
public class Cliente{...
isso quer dizer que a sua classe cliente está fisicamente localizada em
<alguma_localização_prevista_em_seu_classpath>\lib\entidades
Vamos supor que o nosso classpath esteja assim:
CLASSPATH=C:\Tests;C:\Homolog
isso quer dizer que o seu arquivo “Cliente.java” deve estar ou em “C:\Tests\lib\entidades” ou em “C:\Homolog\lib\entidades”
Pelo que voce escreveu na sua resposta, provavelmente o seu classpath deve ter uma entrada “.”, que faz com que o diretório atual - seja ele qual for - esteja incluido no classpath.
Não sei como você está rodando suas classes (Com Eclipse, net beans, ou em linha de comando mesmo), mas vamos supor que seja em linha de comando e que o seu classpath seja o sugerido anteriormente. Para rodar a sua classe Cliente, vc terá que ter o compilado (.class) salvo ou em “C:\Tests\lib\entidades” ou em “C:\Homolog\lib\entidades”. Supondo que adotamos o primeiro caso, vc terá que ter na sua máquina uma estrutura de arquivos assim:
C
+---Tests
+---lib
+---entidades
+---Clientes.class
Tendo tudo isso, vc poderá executar o seguinte comando:
java lib.entidades.Clientes
Qualquer coisa, pergunte mais