logo

Como definir CLASSPATH em Java

CAMPO DE CLASSIFICAÇÃO: CLASSPATH é uma variável de ambiente usada pelo Application ClassLoader para localizar e carregar os arquivos .class. O CLASSPATH define o caminho para encontrar classes de terceiros e definidas pelo usuário que não são extensões ou parte da plataforma Java. Inclua todos os diretórios que contêm arquivos .class e arquivos JAR ao configurar o CLASSPATH.

Você precisa definir o CLASSPATH se:

travessia de pré-encomenda de uma árvore
  • Você precisa carregar uma classe que não está presente no diretório atual ou em qualquer subdiretório.
  • Você precisa carregar uma classe que não esteja em um local especificado pelo mecanismo de extensões.

O CLASSPATH depende de como você está configurando o CLASSPATH. O CLASSPATH possui um nome de diretório ou nome de arquivo no final. Os pontos a seguir descrevem qual deve ser o final do CLASSPATH.

  • Se for um JAR ou zip, o arquivo contém arquivos de classe, o CLASSPATH termina com o nome do arquivo zip ou JAR.
  • Se os arquivos de classe forem colocados em um pacote sem nome, CLASSPATH termina com o diretório que contém os arquivos de classe.
  • Se os arquivos de classe forem colocados em um pacote nomeado, o CLASSPATH termina com o diretório que contém o pacote raiz no nome completo do pacote, que é o primeiro pacote no nome completo do pacote.

O valor padrão de CLASSPATH é um ponto (.). Significa o único diretório atual pesquisado. O valor padrão de CLASSPATH é substituído quando você configura a variável CLASSPATH ou usa o comando -classpath (abreviadamente -cp). Coloque um ponto (.) na nova configuração se desejar incluir o diretório atual no caminho de pesquisa.

Se CLASSPATH encontrar um arquivo de classe que esteja presente no diretório atual, ele irá carregar a classe e utilizá-la, independentemente do mesmo nome da classe presente em outro diretório que também esteja incluído no CLASSPATH.

Se você deseja definir vários caminhos de classe, será necessário separar cada CLASSPATH por ponto e vírgula (;).

Os aplicativos de terceiros (MySQL e Oracle) que usam a JVM podem modificar a variável de ambiente CLASSPATH para incluir as bibliotecas que usam. As classes podem ser armazenadas em diretórios ou arquivos. As classes da plataforma Java são armazenadas em rt.jar.

Existem duas maneiras de definir CLASSPATH: por meio do prompt de comando ou configurando a variável de ambiente.

Vamos ver como definir CLASSPATH do banco de dados MySQL:

Passo 1: Clique no botão Windows e escolha Painel de Controle. Selecione Sistema.

botão para centralizar CSS
Como definir CLASSPATH em Java

Passo 2: Clique em Configurações avançadas do sistema .

Como definir CLASSPATH em Java

Etapa 3: Uma caixa de diálogo será aberta. Clique em Variáveis ​​de ambiente.

Como definir CLASSPATH em Java

Passo 4: Caso o CLASSPATH já exista nas Variáveis ​​do Sistema, clique no botão Editar e coloque ponto e vírgula (;) no final. Cole o caminho do arquivo MySQL-Connector Java.jar.

Se o CLASSPATH não existir nas variáveis ​​do sistema, clique no botão Novo e digite o nome da variável como CLASSPATH e o valor da variável como C:Arquivos de ProgramasJavajre1.8MySQL-Connector Java.jar;.;

Lembre-se: Coloque ;.; no final do CLASSPATH.

Como definir CLASSPATH em Java

Diferença entre PATH e CLASSPATH

CAMINHO CLASSPATH
PATH é uma variável de ambiente. CLASSPATH também é uma variável de ambiente.
É usado pelo sistema operacional para localizar os arquivos executáveis ​​(.exe). Ele é usado pelo Application ClassLoader para localizar o arquivo .class.
Você deve incluir o diretório que contém os arquivos .exe. Você deve incluir todos os diretórios que contêm arquivos .class e JAR.
A variável de ambiente PATH, uma vez definida, não pode ser substituída. A variável de ambiente CLASSPATH pode ser substituída usando a opção de linha de comando -cp ou -CLASSPATH para os comandos javac e java.

Como definir CLASSPATH no Windows usando prompt de comando

Digite o seguinte comando em seu prompt de comando e pressione Enter.

 set CLASSPATH=%CLASSPATH%;C:Program FilesJavajre1.8
t.jar; 

No comando acima, The set é um comando interno do DOS que permite ao usuário alterar o valor da variável. CLASSPATH é um nome de variável. A variável entre sinal de porcentagem (%) é uma variável de ambiente existente. O ponto e vírgula é um separador, e depois do (;) vem o PATH do arquivo rt.jar.

salvar de

Como funciona a pasta ext em Java

O diretório ext funciona um pouco como o CLASSPATH. ext diretório faz parte do mecanismo de carregamento de classe. As classes que estão disponíveis nos JARs no diretório ext estão disponíveis para aplicativos Java.

A tabela a seguir demonstra a principal diferença entre o CLASSPATH e o mecanismo de extensão:

Características CLASSPATH Mecanismo de Extensão
Ordem de carregamento da turma CLASSPATH carrega após inicialização e carregamento de extensão. ext carrega após o carregamento do bootstrap, mas antes do carregamento do CLASSPATH.
Escopo É uma aplicação específica. Todos os JREs no host são a variável de ambiente CLASSPATH. Todas as JVMs estão sendo executadas em java.ext.dirs JRE específicos.
Nome do pacote java.class.path é usado para localizar os diretórios e arquivos JAR contendo arquivos de classe. java.ext.dirs é usado para especificar onde o mecanismo de extensão carrega classes.
Especificação Ele é especificado pelo nome, incluindo a extensão.jar e o diretório que contém os arquivos .class. Todos os arquivos JAR nos diretórios especificados são carregados.

O mecanismo coletará todos os arquivos .jar do diretório de extensão, mesmo que o arquivo não tenha a extensão .jar. A implementação disso é que se for possível alterar o nome de um jar colocado em um diretório de caminho de classe para ter uma extensão diferente de .jar. O curinga (*) não atende. Esta técnica não funcionará com o diretório de extensão.

Vamos entender o processo de execução através de um exemplo.

A.java

 public class A { public String toString() { return 'hello'; } } 

B.java

 public class B { public static void main(final String[] args) { System.out.println(new A()); } } 

Compile o arquivo A.java. arquivaremos o arquivo A.class compilado em A.jar. Coloque este arquivo JAR em outro diretório que não o arquivo B.class compilado.

Para demonstrar o uso do classpath, colocamos o arquivo A.jar em um diretório C:JavaPrograms e acessaremos esse JAR através de curinga (*) para B usar.

Descobrimos que B ainda pode carregar A.class enquanto o excluímos do diretório atual. O iniciador Java foi explicitamente procurado por C:JavaProgram. Também é possível carregar a classe sem sua presença no mesmo diretório e especificação explícita do caminho de classe.

Muitas vezes é referido como um benefício do uso do mecanismo de extensão porque todos os aplicativos que usam esse JRE podem ver as mesmas classes sem a necessidade de especificá-las explicitamente no caminho de classe.

O que acontece se mudarmos o nome de A.jar para A.backup no mesmo diretório referenciado por CLASSPATH. NoClassDefFoundError é encontrado quando fazemos o mesmo porque a referência CLASSPATH não possui a extensão .jar.

Java não