Ola pessoal. Estou estudando para SCJP e no capitulo 10 do livro da KS esta explicando os comandos java, javac etc.
Com isso surgiu algumas duvidas referente a minha execução de teste.
Com base nesta classe surgiu as duvidas referente a execucao do comando java: Sendo que a classe java vai estar dentro de source e o class dentro de classes.
myproject
|-- source
|-- classes
Com isso eu compilei a classe com o comando:
Dae ele criou a arvore de diretorios corretamente pois estou usando pacotes. Agora quando vou executar a classe compilada ele da erro dizendo que nao encontrou a classe. Estou dentro de myproject e digitei o comando:
Ele deu a mensagem de erro dizendo que nao encontrou a classe. Mas eu olho dentro do diretorio e a classe compilada esta la. O que pode estar de errado?
É porque para compilar você deve representar os pacotes na estrutura de diretórios... utilizando barra ( / ), porém para executar, você deve representar os pacotes na estrutura que você declara os pacotes dos seu código fonte, ou seja utilizando ponto ( . ).
Tente executar sua classe com esse comando...
[]'s
Jhonatan da Rosa
----------------------------
Desenvolvedor Java e Oracle
----------------------------
SCJA 1.0
SCJP 5.0
----------------------------
Target => SCWCD
Veja se minhas regras estao corretas..Com base nessas classes:
Outra
1- Se a classe nao tiver declaracao de pacotes (MyTest) eu consigo compilar a classe usando o comando normal ou ate mesmo usando a opcao -classpath. Para executar eu sempre tenho que usar a opcao -classpath seguida do diretorio e nome da class.
2- Se a classe tiver declaracao de pacote (br.com.MyClass) o correto para compilar e executar a classe com sucesso depois é usando o comando "javac -d" + seguido do diretorio de destino onde vai ficar o .class desta classe + nome da classe (MyClass.java). OBS : Se acaso eu compilar esta classe com o comando "javac -classpath . MyClass.java" eu nao consigo executar depois porque eu tenho que montar a estrutura de diretorios do pacote declarado na classe. O corretto seria "javac -d . MyClass.java".
Agora com classes com import de outras classes
3 - Se eu tiver que compilar e executar essa classe (TestClass) eu sempre tenho que informar a opcao -classpath seguida do diretorio onde se encontra a raiz da classe importada. Ex = "javac -classpath . TestClass.java". Para executar é a mesma coisa "java - classpath . TestClass".