21
respostas

Erro ao executar a classe Principal

Could not find or load main class br.com.alura.Principal in module br.com.alura

alguem pode me ajudar com esse erro?

21 respostas

Olá, Renato. Tudo certo? Você está tentando compilar ou executar? Pode nos informar o comando?

java --module-path mods -m br.com.alura/br.com.alura.Principal

Estou tentando executar esse comando

Você está dentro do diretório do módulo principal?

c:\Users\Renato Nobrega\eclipse-workspace\e-livraria>

Você precisa estar no diretório do módulo principal. Pode fazer este teste?

c:\Users\Renato Nobrega\eclipse-workspace\e-livraria\mods>java --module-path mods -m br.com.alura/br.com.alura.Principal Error occurred during initialization of boot layer java.lang.module.FindException: Module br.com.alura not found

Este projeto já é o e-livraria modular?

C:\Users\Renato Nobrega\eclipse-workspace\e-livraria\src\br.com.alura\br\com\alura

Esse é o caminho até a classe Principal

Legal. Dentro do diretório br.com.alura já possui o arquivo module-info.java?

sim, existe o arquivo module-info.java dentro desse diretorio

Você compilou com o comando javac -d mods\br.com.alura --module-path mods src\br.com.alura\br ... ?

javac -d mods/br.com.alura --module-path mods src\br.com.alura\br\com\alura\modelo\dominio\Categoria.java src\br.com.alura\br\com\alura\modelo\dominio\Livro.java src\br.com.alura\br\com\alura\modelo\dominio\NotaFiscal.java src\br.com.alura\br\com\alura\http\dao\LivroDAO.java src\br.com.alura\br\com\alura\nf\servico\NotaFiscalServico.java src\br.com.alura\br\com\alura\nf\subscriber\NotaFiscalSubscriber.java src\br.com.alura\br\com\alura\nf\util\NotaFiscalUtil.java src\br.com.alura\module-info.java src\br.com.alura\br\com\alura\Principal.java

A classe principal possui o método public static void main(String[] args)?

sim, possui esse metodo

Você pode colocar o conteúdo da classe principal e o conteúdo do seu module-info para eu poder analisar? =)

package br.com.alura;

import java.util.List; import java.util.Scanner; import java.util.stream.IntStream;

import br.com.alura.http.dao.LivroDAO; import br.com.alura.modelo.dominio.Livro; import br.com.alura.modelo.dominio.NotaFiscal; import br.com.alura.nf.util.NotaFiscalUtil;

public class Principal {

public static void main(String[] args) {

    System.out.println("Listando todos os livros");
    List<Livro> livros = new LivroDAO().listar();

    IntStream.range(0, livros.size()).forEach(i -> {
        System.out.println(i + "-" + livros.get(i).getNome());
    });

    Scanner scanner = new Scanner(System.in);
    System.out.println("Qual livro deseja?");
    Integer numero = scanner.nextInt();

    System.out.println("Livro escolhido é o: " + livros.get(numero).getNome());

    System.out.println("Favor inserir seu nome para gerar nota fiscal");
    String nome = scanner.next();

    NotaFiscalUtil util = new NotaFiscalUtil();

    util.emitir(new NotaFiscal(nome));

    System.out.println("Obrigado!");

    Scanner scan = new Scanner(System.in);
    scan.nextLine();

    util.fechar();
    scanner.close();
    scan.close();

}

}

module br.com.alura{

requires java.net.http;

}

Após a compilação, você vê a pasta mods criada com o Principal.class?

C:\Users\Renato Nobrega\eclipse-workspace\e-livraria\mods\br.com.alura\br\com\alura

dentro desse diretorio não tem a classe Principal, copiei ela para esse diretorio e tentei executar e nao funcionou

C:\Users\Renato Nobrega\eclipse-workspace\e-livraria\mods\br.com.alura

dentro desse diretorio foi criado apenas module-info.class

Acabei de realizar o teste aqui. Estou usando linux.

joao@VictorPC:~/eclipse-workspace/1755-aula5-novidades-java-elivraria-master$ javac -d mods/br.com.alura --module-path mods src/br.com.alura/br/com/alura/modelo/dominio/Categoria.java src/br.com.alura/br/com/alura/modelo/dominio/Livro.java src/br.com.alura/br/com/alura/modelo/dominio/NotaFiscal.java src/br.com.alura/br/com/alura/http/dao/LivroDAO.java src/br.com.alura/br/com/alura/nf/servico/NotaFiscalServico.java src/br.com.alura/br/com/alura/nf/subscriber/NotaFiscalSubscriber.java src/br.com.alura/br/com/alura/nf/util/NotaFiscalUtil.java src/br.com.alura/module-info.java src/br.com.alura/br/com/alura/Principal.java

joao@VictorPC:~/eclipse-workspace/1755-aula5-novidades-java-elivraria-master$ java --module-path mods --module br.com.alura/br.com.alura.Principal

Listando todos os livros

0 - Desbravando Java e Orientação a Objetos 1 - Explorando APIs e bibliotecas Java 2 - Java 8 Prático 3 - Introdução e boas práticas em UX Design 4 - Conhecendo o Adobe Photoshop CS6 5 - Edição e organização de fotos com Adobe Lightroom 6 - Métricas Ágeis 7 - Scrum: Gestão ágil para projetos de sucesso 8 - Test-Driven Development 9 - Direto ao Ponto 10 - Guia da Startup 11 - O Mantra da Produtividade 12 - Java SE 7 Programmer I 13 - Java SE 8 Programmer I 14 - Zend Certified Engineer

Qual livro deseja?

1

Livro escolhido e o: Explorando APIs e bibliotecas Java

Favor inserir seu nome para gerar nota fiscal

João

Obrigado!!

emitindo

Nota fiscal gerada no nome de João dia 2020-08-11 no valor de 39.99

Então agora achamos o problema. Temos que saber o porquê a classe Principal, junto das demais dos outros pacotes, não estão sendo jogadas dentro da pasta mods.