我正在尝试部署我的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是通过反思启动的,如果这很重要的话)
有谁知道造成这种情况的原因是什么? 谢谢你的时间。