Compilador java utilizando jflex

2 respostas
javaprogramação
Henrique_Lira

estou fazendo um compilador atraz de uma video aula , mais ao seguir os passos do video me deparei com um erro que na aula não esta tendo , o erro acontece na minha class compilador onde eu fiz dessa forma

1 package compiladores;

2

3 import java.io.File;

4

5 public class CreateClassLexer {

6   public static void main(String[] args) {

7      String cwd = System.getProperty(user.dir);

8        String path = String.format("%s/src/compiladores/%s", cwd, lexer.flex);

9       generarLexer(path);

10

11    }

12

13    public static void generarLexer(String path) {

14        File file = new File(path);

15       jflex.Main.generate(file);

16    }

17 }

e essa é a mensagem de erro que esta dando

Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The method generate(String[]) in the type Main is not applicable for the arguments (File)

at compiladores.CreateClassLexer.generarLexer(CreateClassLexer.java:15)
at compiladores.CreateClassLexer.main(CreateClassLexer.java:9)

se alguem poder me informa o que eu fiz de errado seria de grande ajuda

2 Respostas

staroski

O compilador já te avisou o erro:
The method generate(String[]) in the type Main is not applicable for the arguments (File)

O método generate espera receber um array de String como parâmetro, mas você está tentando passar um objeto do tipo File.

BestNuv3

Pra alguém que tenha esse problema no futuro. As versões mais novas do jflex são diferentes, então o jeito mais fácil é mudar o jflex para a versão 1.6.1

Criado 23 de setembro de 2021
Ultima resposta 5 de abr. de 2024
Respostas 2
Participantes 3