eclipse控制台不显示最终结果

zbdgwd5y  于 2021-07-07  发布在  Java
关注(0)|答案(2)|浏览(414)
public class PrimeFinder implements Runnable {
    Thread go;
    StringBuffer primes = new StringBuffer();
    int time = 0;

    public PrimeFinder() {
        start();
        while (primes != null) {
            System.out.println(time);
            try {
                Thread.sleep(1000);
            } catch(InterruptedException exc) {
                // do nothing
            }
            time++;
        }
    }

    public void start() {
        if (go == null) {
            go = new Thread(this);
            go.start();
        }
    }

    public void run() {
        int quantity = 1_000_000;
        int numPrimes = 0;
        // candidate: the number that might be prime
        int candidate = 2;
        primes.append("\nFirst ").append(quantity).append(" primes:\n\n");
        while (numPrimes < quantity) {
            if (isPrime(candidate)) {
                primes.append(candidate).append(" ");
                numPrimes++;
            }
            candidate++;
        }
        System.out.println(primes);
        primes = null;
        System.out.println("\nTime elapsed: " + time + " seconds");
    }

    public static boolean isPrime(int checkNumber) {
        double root = Math.sqrt(checkNumber);
        for (int i = 2; i <= root; i++) {
            if (checkNumber % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] arguments) {
        new PrimeFinder();
    }
}

正如标题所说,我没有在控制台中得到程序的最终结果。。。计时器会一直计数,直到计算完成,但是当程序应该打印出结果时,控制台会清除并变为空白。我试着在某种在线编译器中输入代码,果然,最终结果打印出来了。有没有人遇到过类似的问题?如果有,你是如何解决的?提前谢谢!

63lcw9qa

63lcw9qa1#

如果你启动线程而不是仅仅执行示例化,也许它会打印出一些东西。

Thread thread = new Thread(new PrimeFinder());
thread.start();
tuwxkamq

tuwxkamq2#

我在intellij中尝试了这一点,并且输出被保留在控制台中——尽管正如您所指出的,当使用eclipse时,它并不是全部被保留。看起来eclipse可能会在切换线程时覆盖控制台。
您可以将输出写入一个文件并在那里查看它,当然这与将其保留在控制台中是不同的。为此,您可以转到“运行”>“运行配置…”,然后在“java应用程序”下选择应用程序,然后单击“公用”选项卡,然后在“标准输入和输出”下选中“输出文件”复选框,并输入日志的路径和文件名,然后应用。然后运行“runconfiguration”并查看文件中的输出。
如果在eclipse中的服务器(例如tomcat)上运行,您将进入服务器视图,双击您的服务器,单击openlaunchconfiguration,然后单击common,然后单击output file。在那里,您可以在文件系统或eclipse工作区中指定输出目标。

相关问题