org.slf4j.helpers.NOPLogger无法强制转换为java.util.logging.Logger
我正在尝试运行denclue算法,但我遇到了以下错误。我不知道如何解决这个问题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
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)