私はまだJavaについて非常に新しいです。私はCMUのSphinx4音声認識を使用しようとしています。彼らが準備したコンパイルプロセスを使用したとき、すべて正常に動作しました。しかし、自分でコードを別々にコンパイルしようとしているので、私は問題に遭遇しています。Java - NoClassDefFoundErrorクラスが存在しますが
ソースコード(src /)には、手動でコンパイルしようとしているデモと、使用する主な機能を含むsphinx4 /ディレクトリが含まれているapps /ディレクトリがあります。コードをコンパイルするには、apps /ディレクトリに移動し、 javac -classpath ../sphinx4/ edu/cmu/sphinx/demo/helloworld/HelloWorld.java
を実行します。これはエラーなしでコンパイルされます。しかし、その後、私は結果があるjava edu/cmu/sphinx/demo/helloworld/HelloWorld
を使用して、新しく作られたクラスを実行しようとすると:
Exception in thread "main" java.lang.NoClassDefFoundError: edu/cmu/sphinx/util/props/ConfigurationManager
at edu.cmu.sphinx.demo.helloworld.HelloWorld.main(HelloWorld.java:33)
Caused by: java.lang.ClassNotFoundException: edu.cmu.sphinx.util.props.ConfigurationManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 1 more
しかし、私の知る限り、このクラスは、それがあるべき場所権利が存在しません。 src/sphinx4/edu/cmu/sphinx/util/props/ConfigurationManager.classが存在します。私はそれがそこにあるときに見つけられないと考えられる理由があると推測していますが、私はまだJavaについて十分に知らないのでそれを知らないだけです。これが起こる原因は何でしょうか?
ありがとうございました!
お返事ありがとうございました! (申し訳ありませんが、私は速く返信していませんでした)。 私はlinuxを使用しています。そのため、私はコロンを使用しています。 私は二重チェックして、実際に私が使用している正確なコマンドです。代わりにクラス名を使用するのはどこですか?私は "java"コマンドを使用しますか? 実行時にクラスパスを含めようとします。うまくいけばそれは問題を解決するでしょう。再度、感謝します! – golmschenk
ああ、実行時にクラスパスを追加すると、クラス名を使用していないというエラーが発生しました。だから私は上記のことを正しく掲示しましたが、代わりに実行時にクラス名を使う必要があるのは間違いありません。 – golmschenk
@ golmschenk:正しいクラス名を使用しなかった場合は、スタックトレースが 'HelloWorld'クラスを見つけたら何の兆候も見せてくれて驚いています。 –