其他系统上的Java.io.BufferdReader.lines上的Java-NoSuchMethodError

其他系统上的Java.io.BufferdReader.lines上的Java-NoSuchMethodError,java,intellij-idea,bufferedreader,jsmooth,Java,Intellij Idea,Bufferedreader,Jsmooth,我正在使用一个小型的“基于xml文本的数据库”来存储信息。在编码和调试时,我创建的方法没有问题,但作为一个exe文件(用jsmooth包装),它给了我一个错误: Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: java.io.BufferedReader.lines()LJava/util/stream/Stream: at primary.loadErrorDB(primary.java:47

我正在使用一个小型的“基于xml文本的数据库”来存储信息。在编码和调试时,我创建的方法没有问题,但作为一个exe文件(用jsmooth包装),它给了我一个错误:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: java.io.BufferedReader.lines()LJava/util/stream/Stream: 
      at primary.loadErrorDB(primary.java:471
所以我检查了471行,但是在Intellij上,没有这样的错误,那里一切正常

希望你们知道该怎么做

这就是方法

    public static Object[] loadErrorDB() {

    File db = new File(System.getProperty("user.dir") + "\\errordb.xml");

    Object[] errordbAry = new String[20][20];

    FileReader file = null;
    try {
        file = new FileReader(db);
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    try {
        BufferedReader br = new BufferedReader(file);

        Stream<String> streamList = br.lines();

        errordbAry = streamList.toArray();

    } catch (Exception ex) {
        ex.printStackTrace();
    }


    String a = "";
    for (Object o : errordbAry) {
        a = a + String.valueOf(o) + ";";
    }

    String[] srgAry = a.split(";");

    String[] newAry = new String[srgAry.length - 5];
    int x = 0;

    for (int i = 5; i < srgAry.length; i++) {
        newAry[x] = srgAry[i];
        x++;
    }

    return newAry;

}
公共静态对象[]loadErrorDB(){
File db=新文件(System.getProperty(“user.dir”)+“\\errordb.xml”);
Object[]errordbAry=新字符串[20][20];
FileReader file=null;
试一试{
文件=新文件读取器(db);
}捕获(例外情况除外){
例如printStackTrace();
}
试一试{
BufferedReader br=新的BufferedReader(文件);
streamList=br.lines();
errordbAry=streamList.toArray();
}捕获(例外情况除外){
例如printStackTrace();
}
字符串a=“”;
for(对象o:errordbAry){
a=a+String.valueOf(o)+“;”;
}
字符串[]srgAry=a.split(“;”);
String[]newAry=新字符串[srgAry.length-5];
int x=0;
for(int i=5;i
在此之前,请确保您试图读取的文件已通过
null
check行

String line=null;
if((line=br.readLine())!=null)
  {//Go Ahead
  }
请参阅本指南中的更多内容


Java8中添加了BufferedReader.lines()。检查使用jsmooth打包后使用的Java版本。

upto Java 7中的
Java.io.BufferedReader
类具有
readLine()
,但没有
lines()
。但是在Java8
java.io.BufferedReader
中有行()

因此,首先检查您拥有的java版本,然后进行相应的操作

String line=br.readLine();
String line=null;
if((line=br.readLine())!=null)
  {//Go Ahead
  }