Criei as três classes::
com.pacote1.Principal.java
com.pacote2.Auxiliar.java
com.pacote3.Utilitarios.java
e compilei com “javac ./com/pacote1/Principal.java”.
Isso gerou um .class em cada um dos diretórios. Após isso tentei executar com “java ./com/pacote1/Principal”, mas ocorre a mensagem: “Error: Could not find or load main Class …com.pacote1.Principal”.
package com.pacote1;
import com.pacote2.Auxiliar;
import com.pacote3.Utilitarios;
public class Principal {
public static void main(String... args){
Auxiliar aux = new Auxiliar();
Utilitarios util = new Utilitarios();
aux.falar();
util.falar();
}
}
.
package com.pacote2;
public class Auxiliar {
public void falar(){
System.out.println("Oi, eu sou a classe Auxiliar");
}
}
.
package com.pacote3;
public class Utilitarios {
public void falar(){
System.out.println("Oi, eu sou a classe Utilitarios");
}
}
Sim, os pontos estão no código, isso está correto, se chama varargs, você passa uma quantidade de parâmetros que ainda não sabe, é a mesma coisa que String[] args.
Acessei o caminho “com/pacote1”, e digitei “java Principal” e deu o mesmo erro.
Apenas para testar alterei o “String… args” por “String[] args” mas não adiantou…como falei, é a mesma coisa.
Os três pontos indicam que os parâmetros são opcionais.
Isto é, o método main pode ser invocado sem parâmetro nenhum ou com uma ou mais Strings passadas por parâmetro.
Dentro do método você manipula esse tipo de parâmetro como se fosse um array.
Pode me explicar o que aconteceu aqui? Porque foi colocado um ponto e depois o caminho do pacote com a classe principal. Porque foi chamado somente o parâmetro -classpath e nada mais?
O -classpath é para você adicionar diretórios e/ou arquivos ao classpath da aplicação.
O ponto indica o diretório onde você está no momento.
O com.pacote1.Principal é o nome do pacote e classe que você deseja executar.