Definir classpath em Java
- Como definir o Classpath em Java?
- Configurando Classpath em Java
- Definindo Classpath usando Variáveis de Ambiente
-
Definindo
classpath
na linha de comando -
Configurando Classpath usando a opção
-classpath
- Visualizando o Classpath
- Resumo
Este tutorial apresenta o procedimento para definir o caminho de classe em Java e lista alguns códigos de exemplo para entender o tópico.
Como definir o Classpath em Java?
Freqüentemente, importaremos classes externas ou definidas pelo usuário para disponibilizá-las para uso em nossa classe atual. A instrução import é usada para fazer isso em Java.
import org.projects.DemoClass;
DemoClass dc = new DemoClass();
Seria impossível para a JVM percorrer todos os diretórios em nosso sistema e encontrar a classe apropriada. A JVM usa o classpath para localizar as classes e jars necessários. Neste tutorial, aprenderemos como definir o caminho de classe em Java.
Configurando Classpath em Java
- Podemos definir o caminho de classe como uma variável de ambiente. Ou podemos usar a linha de comando para fazer isso.
- Antes de começar, precisamos saber que o valor padrão do classpath é o diretório atual. É definido usando um ponto (
.
). Mudar o caminho de classe irá alterar este valor padrão. Se você tiver classes ou jars presentes no diretório atual, inclua o diretório atual no caminho de classe. - Podemos especificar vários caminhos de classe usando separadores. Se você estiver usando o sistema operacional Windows, o separador é um ponto-e-vírgula (
;
). Se você estiver em sistemas baseados em Linux / Unix, os dois pontos (:
) são usados como separador.
O código abaixo demonstra isso. Estamos tentando incluir todas as classes do diretório atual (usando ponto) e dois arquivos JAR.
.;C:\javaProjects\someJAR.jar;C:\javaOldProjects\someOldJAR.jar //For Windows
.:/javaProjects/someJAR.jar:/javaOldProjects/someOldJAR.jar //For Linux/Unix
- Classpaths podem conter o caminho para os arquivos jar e o caminho para o pacote principal de nossas classes. Por exemplo, se o caminho do arquivo DemoClass.class for
C:\javaProjects\org\projects\DemoClass.class
, então podemos definir o classpath paraC:\javaProjects
e usar a seguinte instrução de importação.
import org.projects.DemoClass;
Definindo Classpath usando Variáveis de Ambiente
É uma boa ideia adicionar um caminho de classe à variável de ambiente se tivermos um local fixo que sempre conterá os jars e os arquivos de classe necessários. Precisamos encontrar as variáveis de ambiente do sistema e adicionar a variável CLASSPATH se ausente. A seguir, adicionaremos todos os caminhos dos jars e das classes.
Em um sistema Windows,
- Clique no ícone Computador e abra as propriedades no canto superior esquerdo.
- Clique em Propriedades avançadas do sistema> Avançado> Variáveis de ambiente.
- Encontre a variável
CLASSPATH
e adicione os caminhos a ela. Se a variávelCLASSPATH
estiver ausente, primeiro precisamos adicionar a variável.
Definindo classpath
na linha de comando
Podemos usar o comando set CLASSPATH
no Windows para definir o classpath. Precisamos separar caminhos diferentes usando o ponto-e-vírgula no Windows. No exemplo abaixo, estamos adicionando o diretório atual e um arquivo JAR ao classpath.
$ set CLASSPATH=.;C:\javaProjects\someJAR.jar
No Linux / Unix, podemos usar o comando export CLASSPATH
para definir o classpath. Use os dois pontos como separador para vários caminhos.
$ export CLASSPATH=.:/javaProjects/someJAR.jar
Configurando Classpath usando a opção -classpath
Podemos usar a opção -classpath
ou -cp
para definir o caminho de classe ao compilar e executar os arquivos de classe. O código abaixo demonstra isso.
$ javac -classpath .;C:\javaProjects\someJAR.jar SomeClass.java
$ java -classpath .;C:\javaProjects\someJAR.jar SomeClass
Visualizando o Classpath
Podemos verificar se nosso caminho de classe foi definido com sucesso ou não usando os comandos a seguir.
Para Windows:
echo %CLASSPATH%
Para sistemas baseados em Linux / Unix:
echo $CLASSPATH
Resumo
O caminho de classe é o local onde a JVM procurará classes, arquivos JAR e outros recursos. Definir o caminho de classe correto garante que nosso aplicativo Java seja executado sem problemas. Se o classpath não estiver definido corretamente, podemos obter ClassNotFoundException
ou NoClassDefFoundError. Podemos definir as variáveis de ambiente ou usar a linha de comando para definir o caminho de classe. Definir variáveis de ambiente globais para o caminho de classe não é recomendado. Recomenda-se usar a opção -cp
ou -classpath
da linha de comando para especificar o classpath. Isso garantirá que nenhuma configuração global seja alterada.