为什么我会收到此堆栈溢出错误?

时间:2012-12-15 22:06:44

标签: java stack-overflow

我正在尝试部署我的Java应用程序,但遇到了一些非常奇怪的问题。当我在eclipse中运行时,当我在我的mac上运行(编译)时,我根本没有任何问题,但是我在PC上运行问题就出现了。

错误(Obfed代码):

java.lang.StackOverflowError
at java.io.InputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at b.a.b.a.c.a(Unknown Source)
at b.a.b.b.d.<init>(Unknown Source)
at b.a.c.f.a(Unknown Source)
at b.a.c.f.a(Unknown Source)
at b.a.c.f.a(Unknown Source)
at b.a.c.f.a(Unknown Source)
at b.a.c.f.a(Unknown Source)
...

错误的方法:

public static String readStringFromFile(File f) throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(f));
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();
    while (line != null) {
        sb.append(line);
        sb.append("\n");
        line = br.readLine();
    }
    br.close();
    return sb.toString();
}

方法2:

public static void loadSettings() {
  if(Util.getNewFile("pref.txt").exists()) {
      String s = Util.readStringFromFile(Util.getNewFile("pref.txt"));
      String[] tmp2 = s.split("\n");
      for(String tmp0 : tmp2) {
        if(!tmp0.equals("") || !tmp0.startsWith("#")) {
          Main.params.add(tmp0);
        }
      }             
    }
}

我之前有过这样的错误,当时我正在使用反射。 (Jar是通过反思启动的,如果这很重要的话)

有谁知道造成这种情况的原因是什么? 谢谢你的时间。

0 个答案:

没有答案