java - 如何解决以下代码中的java.lang.NoClassDefFoundError?

标签 java noclassdeffounderror language-detection

我是 NLP 和 JAVA 新手。最近我开始从事语言检测和 我从 How to detect language of user entered text? 得到了一个代码。我使用的是 NetBeans 8.2 并在其中复制了以下代码:

package landslip_langdetect;

import java.util.ArrayList;
import com.cybozu.labs.langdetect.Detector;
import com.cybozu.labs.langdetect.DetectorFactory;
import com.cybozu.labs.langdetect.LangDetectException;
import com.cybozu.labs.langdetect.Language;

public class LanguageCodeDetection {
    public void init(String profileDirectory) throws LangDetectException {
        DetectorFactory.loadProfile(profileDirectory);
}

public String detect(String text) throws LangDetectException {
    Detector detector = DetectorFactory.create();
    detector.append(text);
    return detector.detect();
}

public ArrayList<Language> detectLangs(String text) throws LangDetectException {
    Detector detector = DetectorFactory.create();
    detector.append(text);
    return detector.getProbabilities();
}

public static void main(String args[]) {
    try {
        LanguageCodeDetection ld = new LanguageCodeDetection();
        String profileDirectory = "C:\\Users\\user\\Documents\\NetBeansProjects\\LangDetect\\profiles\\";
        ld.init(profileDirectory);
        String text = "Кремль россий";
        System.out.println(ld.detectLangs(text));
        System.out.println(ld.detect(text));
    } catch (LangDetectException e) {
    }
}

}

“profiles”文件夹,我只是从github( https://github.com/shuyo/language-detection )下载并简单地给出“profileDirectory”中的路径

我收到的错误为:

Exception in thread "main" java.lang.NoClassDefFoundError: net/arnx/jsonic/JSONException
at shyjo_langDetect.LanguageCodeDetection_1.init(LanguageCodeDetection_1.java:21)
at shyjo_langDetect.LanguageCodeDetection_1.main(LanguageCodeDetection_1.java:40)
Caused by: java.lang.ClassNotFoundException: net.arnx.jsonic.JSONException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

C:\Users\geethu\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)

我也将所需的 jar 文件添加到库中( http://www.java2s.com/Code/Jar/l/Downloadlangdetectjar.htm ) 由于我是JAVA新手,我不明白为什么会出现这个错误。任何人都可以帮助我解决错误并使代码正常工作吗?

最佳答案

请将 jsonic-1.2.0.jarlangdetect.jar 添加到 NetBeans 项目的构建路径中。您可以在之前提供的 GitHub URL 的 lib 目录下找到这两个 Jar。

更改后,您应该能够获得所需的输出:

[ru:0.9999987658571312]
ru

关于java - 如何解决以下代码中的java.lang.NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54624926/

相关文章:

java - 我可以得到一个类的所有方法吗?

java - 如何制作一个根据用户输入持续运行的循环

java.lang.NoClassDefFoundError : Failed resolution of: Lcom/google/android/gms/common/internal/zzbo;

python - 使用 Python 检测文件中的语言更改

java - 从某些方法调用模拟时出现奇怪的模拟 InvalidUseOfMatchersException

java - 无法执行使用 Rhino JavaScript 编译器编译的 JavaScript 文件

java - 从打包在 jar 中的库访问类

google-chrome - 使用 Chrome 扩展检测当前标签语言?

string - 测试字符串中的日文/中文字符

java - Spring/JUnit - 运行并非真正的单元测试 "tests"