[ RESOLVIDO ] Erro de compilação

8 respostas
Paulomv

Amigos,

estou tentando compilar meu projeto pelo prompt de comando do Linux, porém, sou informado que não está sendo encontrada a minha Classe GradeBook, mesmo eu importando o pacote na classe.
Só que quando eu executo o projeto direto no NetBeans ele executa sem erro.

alguém pode me ajudar?

paulomv@paulomv-xxxxxx:~/NetBeansProjects/Iniciando/src/iniciando$ javac Iniciando.java Iniciando.java:51: error: cannot find symbol GradeBook myGradeBook = new GradeBook( ^ symbol: class GradeBook location: class Iniciando Iniciando.java:51: error: cannot find symbol GradeBook myGradeBook = new GradeBook( ^ symbol: class GradeBook location: class Iniciando 2 errors

8 Respostas

Paulomv

ninguém? :frowning:

S

Posta a exceção que ele lança pra gente ver?

Paulomv

conforme segue, no netbeans ele roda, pelo prompt não…

Classe GradeBook:

package iniciando;

/**
 *
 * @author paulomv
 */
public class GradeBook {
  
    private String courseName;
    private final int[][] grades;
   
    //Construtor de dois argumentos inicialia courseName e array de notas
    public GradeBook(String name, int[][] gradesArray){
    
        courseName = name;
        grades = gradesArray;
    
    }
    //método para configurar o nome do curso
    public void setCourseName(String name){
    
        courseName = name;
    }
    //método para recuperar o nome do curso
    public String getCourseName(){
    
        return courseName;
        
    }
    //exibe a mensagem de boas-vindas
    public void displayMessage(){
    
        System.out.printf("Welcome to the grade book for \n%s!\n\n",
                courseName);
    }
    //realiza as operações de dados
    public void processGrades(){
    
        outputGrades();
        
        System.out.printf("\n%s %d\n%s %d\n\n",
                "Lowest grade in the grade book is", getMinimum(),
                "Highest grade in the grade book is",  getMaximum());
        
        outputBarChart();
    }
    //localiza nota mínima
    public int getMinimum(){
    
        int lowGrade = grades[0][0];
        
        for(int[] studentsGrades : grades){
        
            for(int grade : studentsGrades){
            
                if(grade < lowGrade)
                    lowGrade = grade;
            }
        }
        return lowGrade;
    }
    //localiza nota máxima
    public int getMaximum(){
    
        int highGrade = grades[0][0];
        
        for(int[] studentsGrades : grades){
        
            for(int grade : studentsGrades){
            
                if(grade > highGrade)
                    highGrade = grade;
            }
        }
        return highGrade;
    }
    //determina a média do conjunto de notas
    public double getAverage(int[] setOfGrades){
    
        int total = 0;
        
        for(int grade : setOfGrades)
            total += grade;
        
        return (double) total / setOfGrades.length;
    }
    //gera sáida do gráfico de barras exibindo o total de notas
    public void outputBarChart(){
    
        System.out.println("Overall grade distribuition: ");
        
        int[] frequency = new int[11];
        
        for (int[] studentsGrades : grades){
        
            for(int grade : studentsGrades)
                ++frequency[grade / 10];
        }
        
        for( int count = 0; count < frequency.length; count++){
        
            if(count == 10)
                System.out.printf("%5d> ", 100);
            else
                System.out.printf("%02d-%02d: ",
                        count * 10, count * 10 + 9);
            
            for(int stars = 0; stars < frequency[count]; stars++)
                System.out.print("*");
            
            System.out.println();
        }
    }
    //gera saída do conteúdo do array de notas
    public void outputGrades(){
    
        System.out.println("The grades are:\n");
        System.out.print("              ");
        
        for (int test = 0; test < grades[0].length; test++)
            System.out.printf("Test %d ", test + 1);
        
        System.out.println("Average");
        
        for( int student = 0; student < grades.length; student++){
        
            System.out.printf("Student %2d", student + 1);
            
            for(int test : grades[student] )
                System.out.printf("%8d", test );
            
            double average = getAverage(grades[student]);
            System.out.printf("%9.2f\n", average );
            
            
        }
    }
}

Método MAIN:

package iniciando;
/**
 *
 * @author paulomv
 */
public class Iniciando {

    public static void main(String[] args) {
               
        
        int[][] gradesArray = {{87, 96, 70},{68, 87, 90}, {94, 100, 90},
            {100, 81, 82}, {83, 65, 85}, {78, 87, 65}, {85, 75, 83},
            {91, 94, 100}, {76, 72, 84}, {87, 93, 73}};
        
        GradeBook myGradeBook = new GradeBook(
        "Introduction to Java Programming", gradesArray);
        myGradeBook.displayMessage();
        myGradeBook.processGrades();
        
            }
    }

Erro:

paulomv@paulomv-xxxxxx:~/NetBeansProjects/Iniciando/src/iniciando$ javac Iniciando.java Iniciando.java:51: error: cannot find symbol GradeBook myGradeBook = new GradeBook( ^ symbol: class GradeBook location: class Iniciando Iniciando.java:51: error: cannot find symbol GradeBook myGradeBook = new GradeBook( ^ symbol: class GradeBook location: class Iniciando 2 errors

S

Ele não consegue encontrar a classe GradeBook no diretório iniciando.

Tem certeza que está no mesmo diretório? O fato de você definir o mesmo pacote no netbeans não é garantia que as classes estão realmente no mesmo pacote.

Sugiro navegar até a pasta do projeto pelo sistema operacional e ver a localização de cada classe e caso elas não estejam na mesma pasta removê-las conforme necessário.

Paulomv

soldierx13:
Ele não consegue encontrar a classe GradeBook no diretório iniciando.

Tem certeza que está no mesmo diretório? O fato de você definir o mesmo pacote no netbeans não é garantia que as classes estão realmente no mesmo pacote.

Sugiro navegar até a pasta do projeto pelo sistema operacional e ver a localização de cada classe e caso elas não estejam na mesma pasta removê-las conforme necessário.

estão sim no mesmo diretório:

paulomv@paulomv-xxxxx:~/NetBeansProjects/Iniciando/src/iniciando$ ls -l total 16 -rw-rw-r-- 1 paulomv paulomv 2785 Oct 18 07:48 GradeBook.class -rw-rw-r-- 1 paulomv paulomv 3871 Oct 19 11:24 GradeBook.java -rw-rw-r-- 1 paulomv paulomv 689 Oct 18 07:44 Iniciando.class -rw-rw-r-- 1 paulomv paulomv 869 Oct 19 12:34 Iniciando.java paulomv@paulomv-xxxxxx:~/NetBeansProjects/Iniciando/src/iniciando$

Vynko

Procurando o erro…

EDIT

Se só não roda pelo prompt, suponho que ou você não tenha compilado todas as classes corretamente, ou você não está executando a classe main.
Execute a classe que possui o main, se ainda assim não der, compacte-os em um arquivo jar, e execute pelo prompt.

Paulomv

Vynko:
Procurando o erro…

EDIT

Se só não roda pelo prompt, suponho que ou você não tenha compilado todas as classes corretamente, ou você não está executando a classe main.
Execute a classe que possui o main, se ainda assim não der, compacte-os em um arquivo jar, e execute pelo prompt.

Mas está correto, não está?

GradeBook myGradeBook = new GradeBook("Introduction to Java Programming", gradesArray);

Paulomv
Vynko:
Procurando o erro...

EDIT

Se só não roda pelo prompt, suponho que ou você não tenha compilado todas as classes corretamente, ou você não está executando a classe main.
Execute a classe que possui o main, se ainda assim não der, compacte-os em um arquivo jar, e execute pelo prompt.

Vynko, valeu pela ajuda!

Achei o problema, eu tive que somente comentar a linha que importa o pacote("package iniciando"):
//package iniciando;

/**
 *
 * @author paulomv
 */
public class GradeBook {
  
    private String courseName;
    private final int[][] grades;

;@ todo esse tempo perdido por isso...

paulomv@paulomv-xxxxxx:~/NetBeansProjects/Iniciando/src/iniciando$ java Iniciando 
Welcome to the grade book for 
Introduction to Java Programming!

The grades are:

              Test 1 Test 2 Test 3 Average
Student  1      87      96      70    84.33
Student  2      68      87      90    81.67
Student  3      94     100      90    94.67
Student  4     100      81      82    87.67
Student  5      83      65      85    77.67
Student  6      78      87      65    76.67
Student  7      85      75      83    81.00
Student  8      91      94     100    95.00
Student  9      76      72      84    77.33
Student 10      87      93      73    84.33

Lowest grade in the grade book is 65
Highest grade in the grade book is 100

Overall grade distribuition: 
00-09: 
10-19: 
20-29: 
30-39: 
40-49: 
50-59: 
60-69: ***
70-79: ******
80-89: ***********
90-99: *******
  100> ***
Criado 18 de outubro de 2013
Ultima resposta 20 de out. de 2013
Respostas 8
Participantes 3