Claspath


suprindo como aplicação argumentEdit

suponha que temos um pacote chamado org.mypackage contendo as classes:

  • HelloWorld (classe principal)
  • SupportClass
  • UtilClass

e os arquivos de definição do pacote são armazenados fisicamente sob o diretório D:\myprogram (no Windows) ou /home/user/myprogram (no Linux).

a estrutura do ficheiro parece-se com isto:

Quando invocamos Java, especificamos o nome da aplicação a executar: org.mypackage.HelloWorld., No entanto, também devemos dizer ao Java onde procurar os arquivos e diretórios que definem nosso pacote.,o lançamento do programa, podemos usar o seguinte comando:

Microsoft Windows Linux
 java -classpath D:\myprogram org.mypackage.HelloWorld
 java -cp /home/user/myprogram org.mypackage.HelloWorld 

em que:

  • java é o tempo de execução Java launcher, um tipo de Ferramenta do SDK (Uma ferramenta de linha de comando, como o javac, javadoc, ou apt)
  • -classpath D:\myprogram define o caminho para os pacotes usados no programa (no Linux, -cp /home/user/myprogram) e
  • org.,mypackage.HelloWorld é o nome da classe principal

Definir o caminho através de um ambiente variableEdit

A variável de ambiente chamada CLASSPATH alternativamente, podem ser usados para definir o classpath. Para o exemplo acima, podemos também usar no Windows:

set CLASSPATH=D:\myprogramjava org.mypackage.HelloWorld

A regra é: -classpath opção, quando usado para iniciar o aplicativo java, substitui o CLASSPATH variável de ambiente. Se nenhuma for indicada, a pasta de trabalho actual é usada como claspath., Isto significa que quando nosso diretório de trabalho é D:\myprogram\ (em Linux, /home/user/myprogram/), não precisaríamos especificar explicitamente o claspath. Quando se sobrepõe no entanto, é aconselhável incluir a pasta actual "." no fecho, no caso em que se deseja carregar as classes da pasta actual.

o mesmo se aplica não só ao lançador java, mas também ao javac, o compilador java.

definir o caminho de um ficheiro Jar

Se um programa usar uma biblioteca de suporte incluída num ficheiro Jar chamado supportLib.,jar, fisicamente localizado no diretório D:\myprogram\lib\ e a correspondente estrutura de arquivos física é:

D:\myprogram\ | ---> lib\ | ---> supportLib.jar | ---> org\ | --> mypackage\ | ---> HelloWorld.class ---> SupportClass.class ---> UtilClass.class

o seguinte opção de linha de comando é necessário:

java -classpath D:\myprogram;D:\myprogram\lib\supportLib.jar org.mypackage.HelloWorld

ou em alternativa:

set CLASSPATH=D:\myprogram;D:\myprogram\lib\supportLib.jarjava org.mypackage.HelloWorld

Adicionar todos os arquivos JAR em um directoryEdit

No Java 6 e superior, pode-se adicionar todos os jar-arquivos em um diretório específico para o classpath usando a notação de caractere curinga.,

exemplo:

java -classpath ".;c:\mylib\*" MyApp

Linux exemplo:

java -classpath '.:/mylib/*' MyApp

Isto funciona tanto para o -classpath opções e ambiente de classpaths.

definir a localização num ficheiro Manifesto

Se um programa tiver sido incluído num ficheiro Jar chamado helloWorld.jar, localizado directamente na pasta D:\myprogram, a estrutura de diretórios é a seguinte:

D:\myprogram\ | ---> helloWorld.jar | ---> lib\ | ---> supportLib.jar

o arquivo manifesto definido no helloWorld.,jar tem esta definição:

Main-Class: org.mypackage.HelloWorldClass-Path: lib/supportLib.jar

o ficheiro manifesto deve terminar com uma nova linha ou com o carriage return.

o programa é lançado com o seguinte comando:

java -jar D:\myprogram\helloWorld.jar 

isto inicia automaticamente org.mypackage.HelloWorld indicado na classe principal com os argumentos. O utilizador não pode substituir este nome de classe usando a invocação java-jar . Class-Path descreve a localização do supportLib.jar relativo à localização da biblioteca helloWorld.frasco., Nem a localização absoluta do ficheiro, que é permitida no parâmetro -claspath na linha de comandos, nem os caminhos internos do jar são suportados. Isto significa que, se o ficheiro da classe principal estiver contido num jar, org/mypackage / HelloWorld.a classe deve ser um caminho válido na raiz dentro do frasco.

múltiplas entradas em classpath estão separadas por espaços:

Class-Path: lib/supportLib.jar lib/supportLib2.jar

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *