Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
org.slf4j.helpers.NOPLogger无法强制转换为java.util.logging.Logger_Java - Fatal编程技术网

org.slf4j.helpers.NOPLogger无法强制转换为java.util.logging.Logger

org.slf4j.helpers.NOPLogger无法强制转换为java.util.logging.Logger,java,Java,我正在尝试运行denclue算法,但我遇到了以下错误。我不知道如何解决这个问题 Exception in thread "main" java.lang.ExceptionInInitializerError at test.ReadStringFromFileLineByLine.main(ReadStringFromFileLineByLine.java:83) Caused by: java.lang.ClassCastException: org.slf4j.helpers.NO

我正在尝试运行denclue算法,但我遇到了以下错误。我不知道如何解决这个问题

Exception in thread "main" java.lang.ExceptionInInitializerError
    at test.ReadStringFromFileLineByLine.main(ReadStringFromFileLineByLine.java:83)
Caused by: java.lang.ClassCastException: org.slf4j.helpers.NOPLogger cannot be cast to java.util.logging.Logger
    at smile.clustering.DENCLUE.<clinit>(DENCLUE.java:33)
    ... 1 more
线程“main”java.lang.ExceptionInInitializeError中的异常 位于test.ReadStringFromFileLineByLine.main(ReadStringFromFileLineByLine.java:83) 原因:java.lang.ClassCastException:org.slf4j.helpers.NOPLogger无法强制转换为java.util.logging.Logger 在smile.clustering.DENCLUE.(DENCLUE.java:33) ... 还有一个 我使用以下三个jar文件:

log4j-1.2.17.jar

slf4j-api-1.7.10.jar

slf4j-nop-1.7.10.jar

我该怎么办? 请帮帮我

好的,这是我的全部代码。在这个项目中,我读取文本文件并将其更改为2d数组,然后调用denclue类算法。 ReadStringFromFileLineByLine是此类的名称

package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import org.omg.CORBA.PUBLIC_MEMBER;


import smile.clustering.DENCLUE;

public class ReadStringFromFileLineByLine {
    public static void main(String[] args) {
         long t1 = System.currentTimeMillis();
         System.out.println(t1);

        try {
            File file = new File("E:/spam.txt");
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            StringBuffer stringBuffer = new StringBuffer();
            String line;
            int numberOfLines=Readfile.readLines();
            int i=0;
            int k=0;
            String[] aryLines =new String[numberOfLines];
            int j=0;
            double[] txtData1d =new    double[aryLines.length];
             double[][] txtData2d =new double[(txtData1d.length)/2][(txtData1d.length)/2];
            System.out.println("aryLines");

            while ((line = bufferedReader.readLine()) != null) {
                aryLines[i]=line;
                String[] words=aryLines[i].split("    ");

                i++;

                for (String s : words)
                {

                    for(int a=0; a<(txtData1d.length)/2; a++){//convert 1d to 2d
                        for(int b=0; b<(txtData1d.length)/2; b++){


                           // k++;



                        }



                    }


                }

            }
            System.out.println("after loops");



                for(int a=0; a<(txtData1d.length)/2; a++){//convert 1d to 2d
                for(int b=0; b<(txtData1d.length)/2; b++){

                    txtData2d[a][b] = txtData1d[k];
                   k++;
                }
                }

               DENCLUE vbbx= new DENCLUE(txtData2d,0.5 , 12); 

            fileReader.close();
            System.out.println("Contents of file:");

            System.out.println(vbbx.toString());
            long t2 = System.currentTimeMillis();
            System.out.println("Time in milliseconds: " + (t2 - t1));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
封装测试;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.IOException;
导入org.omg.CORBA.PUBLIC_成员;
导入smile.clustering.DENCLUE;
公共类ReadStringFromFileLineByLine{
公共静态void main(字符串[]args){
long t1=System.currentTimeMillis();
系统输出打印项次(t1);
试一试{
File File=新文件(“E:/spam.txt”);
FileReader FileReader=新的FileReader(文件);
BufferedReader BufferedReader=新的BufferedReader(文件阅读器);
StringBuffer StringBuffer=新的StringBuffer();
弦线;
int numberOfLines=Readfile.readLines();
int i=0;
int k=0;
字符串[]aryLines=新字符串[numberOfLines];
int j=0;
double[]txtData1d=新的双精度[aryLines.length];
double[]txtData2d=新的double[(txtData1d.length)/2][(txtData1d.length)/2];
System.out.println(“aryLines”);
而((line=bufferedReader.readLine())!=null){
芳基线[i]=芳基线;
String[]words=aryLines[i]。拆分(“”);
i++;
for(字符串s:单词)
{

对于(int a=0;a您可以使用org.slf4j.Logger而不是java.util.logging.Logger。只需相应地更改导入即可。

请编辑您的问题,以包含
ReadStringFromFileLineByLine
类的完整源代码。看起来您的导入语句错误,它指向
java.util.logging
。因为您e使用SLF4J,您应该删除它。好的,我添加整个代码。请同时添加类
DENCLUE
,并检查该类的导入。我添加DENCLUE算法。现在我该怎么办?正如@juwil已经回答的,删除
java.util.logging.Logger
import,您使用的是SLF4J。我该怎么做?删除
import java.util.logging.Logger;
并改为写入
import org.slf4j.Logger
。就是这样。我添加了org.slf4j.Logger,最后一个错误完成了,但我遇到了以下错误:线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:0
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at smile.clustering.BBDTree.buildNode(BBDTree.java:110)
    at smile.clustering.BBDTree.<init>(BBDTree.java:103)
    at smile.clustering.KMeans.<init>(KMeans.java:82)
    at smile.clustering.KMeans.<init>(KMeans.java:72)
    at smile.clustering.DENCLUE.<init>(DENCLUE.java:98)
    at test.ReadStringFromFileLineByLine.main(ReadStringFromFileLineByLine.java:83)