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