0

私は Apertium Translator を使用しており、提供されているサンプル コードを使用しています。私のコードはこのようなものです。

import com.robtheis.aptr.language.Language;
import com.robtheis.aptr.translate.Translate;

public class Test {

public static void main(String[] args) throws Exception {
    // Set the Apertium API Key - Get yours at http://api.apertium.org/register.jsp
    Translate.setKey("BNSCFhEL8DoTApc2I1+aa3UYkVg");

    String translatedText = Translate.execute("Hola, mundo!", Language.SPANISH, Language.ENGLISH);

    System.out.println(translatedText);
}
}

エラーや警告はありません。プログラムを実行すると、次のエラーが表示されます。

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/JSONValue
at com.robtheis.aptr.ApertiumTranslatorAPI.jsonSubObjToString(ApertiumTranslatorAPI.java:195)
at com.robtheis.aptr.ApertiumTranslatorAPI.retrieveSubObjString(ApertiumTranslatorAPI.java:140)
at com.robtheis.aptr.translate.Translate.execute(Translate.java:56)
at maple.Test.main(Test.java:11)
Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONValue
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more

私が使用している .jar は、https://github.com/rmtheis/apertium-translator-java-api/downloadsの 2 番目のものです。

4

2 に答える 2

2

最初のものをダウンロードする必要があります。最初の jar ファイル ( apertium-translator-java-api-0.2-jar-with-dependencies.jar ) には、必要なすべての依存関係が含まれています。

または、json ライブラリをプロジェクト パスに追加します。

于 2013-08-24T14:51:55.150 に答える
0

JVM は、コンパイル時に利用可能だった一部のクラスを実行時に見つけることができません。これがNoClassDefFoundError の理由です。以下には、このクラスorg.json.simple.JSONValueのClassNotFoundException
もあります。これ は、実行時に特定のクラスを名前でロードしようとしていることを意味します。 どちらもJava Class Pathに関連しています。私はjsonのことについてあまり知りません。ただし、このファイル org.json.simple.JSONValue がありません。ここから取得できますhttp://code.google.com/p/json-simple/ 上記の jar ファイルをクラス パスに追加します。そして、コードは間違いなく実行されます。保証します。 ありがとう


于 2013-08-24T15:29:59.490 に答える