当前位置: 首页 > 知识库问答 >
问题:

为什么这段代码在CodeEval上不起作用?

欧阳正德
2023-03-14

因此,下面的代码,从txt文件中取序列号作为参数,在我的计算机上正常工作。每个数字都写在一行上。下面是代码:

import java.io.*;
import java.util.*;
import javax.swing.JOptionPane;

public class Main {
    public static int fiboComputingAct(int serial){
        if (serial == 1 || serial == 2) {
            return 1;
        }else{
            int nMinus2 = 1;
            int nMinus1 = 1;
            int result = 0;
            for (int i = 3; i <= serial; i++){
                result = nMinus1 + nMinus2;
                nMinus2 = nMinus1;
                nMinus1 = result;   
            }
            return result;
        }   
    }

    public static void main (String [] args){
        try {
            File textFile = new File("texts/1.txt"); //"texts/1.txt" will be replaced on args[0] in codeeval
            Scanner scan = new Scanner(textFile);
            int fiboSerialNumber;
            while (scan.hasNextLine()) {
                fiboSerialNumber = scan.nextInt();
              System.out.println(fiboComputingAct(fiboSerialNumber));
                }
            } catch (Exception e) {JOptionPane.showMessageDialog(null, "File is not found");}   
        }   
    }

但它在CodeEval中不起作用。站点编译器是这么说的:

Fontconfig错误:无法加载默认配置文件线程“main”java.awt.HeadLessException:未设置X11显示变量,但此程序执行了需要它的操作。在java.awt.GraphicsEnvironment.CheckHeadless(graphicsEnvironment.java:207)在java.awt.Window.(window.java:535)在java.awt.Frame.(frame.java:420)在java.awt.Frame.(frame.java:385)在javax.swing.swingUtilities$ShareDownerFrame.(swingUtilities.getShareDownerFrame(swingUtilities.java:1759)在

共有1个答案

徐柏
2023-03-14

根据堆栈跟踪,错误发生在以下位置:

JOptionPane.showMessageDialog(null, "File is not found");

看看headlessexception的文档,我们可以看到它是:

当在不支持键盘、显示器或鼠标的环境中调用依赖于键盘、显示器或鼠标的代码时引发。

要避免此错误,只需在catch块中用简单的e.printStackTrace()替换图形错误报告。

 类似资料:
  • (下面是完整的代码)我刚刚交了一个课堂实验,在那里我们必须做一个描述某本书的课堂。我不知道怎么做两件事。1.如果有人为“页面”或“SuggestedMetalPrice”输入的值小于零,则该值必须设置为零。在该代码中,即使值为正,该值也设置为0。在: 如果我将第二个“0”设置为不同的数字,比如说: 那么你输入的“页面”的值将是1。但是如果你输入的值是负数,它不应该只有1吗?我不明白我做错了什么。

  • 我使用以下代码执行HTTP POST请求并反序列化返回的值: 为了让它更容易使用,我尝试将代码封装在一个函数中,如下所示: 然而,当代码被放入函数中时,它就会停止工作。它抛出。似乎有些类型信息在途中丢失了。 null

  • 问题内容: 我正在阅读有关ConcurrentModificationException以及如何避免它的信息。找到了一篇文章。该文章中的第一个清单具有与以下相似的代码,这显然会导致异常: 然后,它继续以各种建议解释如何解决该问题。 当我尝试重现它时,我没有遇到异常! 为什么我没有得到例外? 问题答案: 根据JavaAPI文档,Iterator.hasNext不会抛出。 检查后,您从列表中删除了一个

  • 我想了解为什么一段代码不会抛出NullPointerException。 请考虑以下代码: 方法被重复调用,同时以下代码在单独的线程中运行: 只有一个实例。 从不引发NullPointerException。 但是,当方法暂停时,即使暂停0毫秒,也会按预期引发NullPointerException: 我的理解是,在理论上,在检查和调用之间存在竞争条件。在实践中,如果不引入暂停(即从后续方法调用中

  • 我有一些流处理代码,它接受一个单词流并对它们执行一些操作,然后将它们简化为一个,其中包含单词作为键,单词的出现次数作为值。为了代码的简洁性,我使用了jOOL库的类,其中包含许多有用的快捷方法。 类型中的方法不适用于参数 type未定义此处适用的 为什么的行为与有任何不同,我(也许是天真地)认为它是直接等效的,为什么编译器在使用它时不能处理它? (是的,我知道我可以通过将以前的应用程序移到操作中来删

  • 我想了两个小时,为什么这段代码不能产生预期的结果。如果我输入3个整数,比如3、4和5,它应该给出所有27个可能的和(假设数字可以是正的、负的或零) 因此,它应该产生以下内容: -3-4-5=-12 -3-4 0 = -7 -4-4 5=3 等等