None 的打印命令产生了输出,但程序仍然没有错误地执行 java- eclipse

None of the print commands produce output, but the program still executes without errors java- eclipse

我正在研究 Java 并且显然对它很陌生。我有一个看起来可以正常工作的应用程序,但是它没有像预期的那样向控制台 window 产生任何输出——它也没有给出任何令人困惑的错误。我正在使用 Eclipse。我将非常感谢第二组眼睛来发现我做错了什么。那里有一些代码来自尝试不同的方法来让它工作 - 我稍后会删除它。

我的问题是:为什么我的程序没有产生输出?作为后续行动:为什么它没有产生输出,为什么不产生某种错误?

我已经研究了几天,我找到的最接近的是这篇文章,虽然它很相似,但并不真正适用于这种情况。 System.out.print() doesn't send any output to Eclipse console. Why?

*已编辑 - 缩短了代码并添加了有关如何修复的评论。 我有 2 类 - 学生和花名册。

花名册:

//**  client class....*/

import java.util.ArrayList;
import java.util.Arrays;

public class Roster {

    /* String copied from the instructions, adding info as the last item*/
    static String[] students = {"1,John,Smith,John1989@gmail.com,20,88,79,59",
            "2,Suzan,Erickson,Erickson_1990@gmailcom,19,91,72,85",
            "3,Jack,Napoli,The_lawyer99yahoo.com,19,85,84,87"};

static ArrayList<Student> studentProfiles = new ArrayList<Student>();

    public static void main(String[] args) {
        //creating the arraylist - rather, converting a string of arrays to an Array list of student objects

        {
            for (int i = 0; i < students.length; i++) {
                String component = students[i];
                String[] terms = component.split(",");
                String studentID = terms[0];
                String firstName = terms[1];
                String lastName = terms[2];
                String emailAddress = terms[3];
                String age = terms[4];
                int grade1 = Integer.parseInt(terms[5]);
                int grade2 = Integer.parseInt(terms[6]);
                int grade3 = Integer.parseInt(terms[7]);

                Student student = new Student(studentID, firstName, lastName, emailAddress, age, grade1, grade2, grade3);
                studentProfiles.add(student);
            }
        }
    }

    //test just to generate output, didn't work. <-- Moving this inside the main generated the output I needed.
    {
        System.out.println(studentProfiles);
    }
///
   /// enter methods here
///
//
 }

    //other print all attempt
    //-->> Put inside main 
public static void print_all()

    //-->> Put inside main  
System.out.println(j);
`enter code here`   

 //-->> Put inside main 
print_all();
print_invalid_emails();         
print_average_grade(student);
remove("3");
remove("3");
    //}
    //}



    }
}

您需要将打印放在 main 方法中。

您正在使用的区块:

{
   System.out.println(studentProfiles);
}

称为Initializer块,在调用Roaster的构造函数时调用。

尝试将 System.out.println(studentProfiles); 放入 Main() 方法中。

也看看这个: https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html