Como definir a variável CLASSPATH para uma pasta no Ubuntu

15

Eu sei que export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH adicionará o tools.jar ao CLASSPATH, mas eu quero definir a pasta para o CLASSPATH

como este

export CLASSPATH=/usr/local/java/lib/:$CLASSPATH

mas não está funcionando.

    
por Ramesh Kotha 11.09.2012 / 21:58

4 respostas

8

Primeiro, em geral, configurar o env var CLASSPATH geralmente causa mais problemas do que resolve - já que nem todos os aplicativos querem / precisam do mesmo caminho de classe, & amp; muitas vezes quebram quando jatos indesejáveis ou desnecessários são incluídos no caminho de classe. Um aplicativo java deve incluir apenas o número mínimo de frascos que ele exige, nem mais nem menos.

Quando você tem aplicativos específicos e individuais que exigem que o caminho de classe seja definido, geralmente a opção de linha de comando é preferida: java -cp path1:path2:... . Os ícones da área de trabalho podem ter seu comando alterado para incluir essas opções, ou scripts de shell podem ser modificados para incluir essas opções.

Dito isto (e uma vez que há sempre exceções à regra), então dependendo da versão do java (isto requres java 6 ou posterior), você pode especificar que um diretório inteiro de jars seja adicionado ao classpath adicionando um " * " no final de um diretório; por exemplo, o seguinte:

 /dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...

Significa:

  • /dir1/foo.jar - (o único frasco) será adicionado ao caminho de classe;
  • /dir2/dir3 - todas as classes un-jar'd neste diretório serão adicionadas ao caminho de classe (deve estar na estrutura de pacote adequada; por exemplo, com.my.Foo.class deve estar em /dir2/dir3/com/my/Foo.class )
  • /dir5/dir6/* - todos os jars neste diretório (ou seja, /dir5/dir6/*.jar ) serão adicionados ao caminho de classe. Note que este " * " não é um curinga (você não pode usar f*.jar ou mesmo *.jar ); é um caractere especial indicando "adicionar todos os frascos"

Em geral, se você tiver que adicionar um diretório inteiro de jars ao classpath do aplicativo, o aplicativo não foi empacotado corretamente. Em vez disso, o aplicativo deve ter um manifesto contendo a lista de frascos de que depende. Ou, no mínimo, apenas um jar deve ser adicionado ao seu classpath, e esse jar pode ter em seu manifesto toda a lista de jars em algum subdiretório.

    
por michael 17.09.2012 / 09:25
2

se você quiser definir o classpath permanentemente, 1) descobrir onde o java está instalado    você pode usar "whereis java"      openjdk-7/6 está em / usr / lib / jvm /.....

2) precisamos configurar o CLASSPATH em / etc / environment

  sudo gedit /etc/environment

3) adicione os seguintes gostos .. (NÃO DEIXE QUAISQUER ESPAÇOS QUANDO TYPING) (personalize de acordo com a sua versão e instalação de java)       (este caminho inicial é para o open jdk 7)

   JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/bin"

   export JAVA_HOME

   CLASSPATH=".:/usr/lib/jvm/java-7-openjdk-i386/lib:/home/laptop/Desktop/a2"

   export CLASSPATH

diretório separado por ":"

    
por rightkushagra 05.09.2013 / 18:00
0

abra o terminal e digite

  

sudo nano ~ / .bashrc

adicione todas as exportações necessárias ...

  

export JAVA_HOME = / usr / local / java / jdk1.6.0_06 (seu caminho)

     

exportar ANT_HOME = / opt / ant / apache-ant-1.9.4

finalmente reinicie o terminal para que as alterações entrem em vigor

    
por mateen 11.03.2015 / 12:52
0

Os curingas foram introduzidos a partir do Java 6. As entradas do caminho da classe podem conter o caractere curinga da base *, que é considerado equivalente a especificar uma lista de todos os arquivos no diretório com a extensão .jar ou .JAR.

java -cp "lib/*" -jar %MAINJAR%

Se você precisar apenas de jars específicos, precisará adicioná-los individualmente. A string de caminho de classe não aceita caracteres curinga genéricos como Jar *, .jar, hiber etc.

Exemplo

A seguinte entrada não funciona:

java -cp "Halo.jar;lib/*.jar" ni.package.MainClass

A entrada correta é:

java -cp "Halo.jar;lib/*" ni.package.MainClass

Mais sobre .... Java Classpath

Rj

    
por user3916901 31.03.2017 / 07:19