包括jar文件到类路径

时间:2012-11-11 00:47:44

标签: java classpath voice-recognition cmusphinx

我试图运行Sphinx的HelloWOrd程序,它需要一个.jar文件才能工作。

我试图在类路径中添加一个jar文件,但我得到了一些错误

contend.util不存在     import edu.cmu.sphinx.frontend.util.Microphone;                                        ^ home / karen / workspace / hola / src / hola / HelloWorld.java:4:包edu.cmu.sphinx.recognizer不存在     import edu.cmu.sphinx.recognizer.Recognizer;                                     ^ home / karen / workspace / hola / src / hola / HelloWorld.java:5:包edu.cmu.sphinx.result不存在     import edu.cmu.sphinx.result.Result;                                 ^ home / karen / workspace / hola / src / hola / HelloWorld.java:6:包edu.cmu.sphinx.util.props不存在     import edu.cmu.sphinx.util.props.ConfigurationManager;                                     ^ home / karen / workspace / hola / src / hola / HelloWorld.java:11:找不到符号 符号:类ConfigurationManager 位置:类hola.HelloWorld             ConfigurationManager cm;             ^ home / karen / workspace / hola / src / hola / HelloWorld.java:14:找不到符号 符号:类ConfigurationManager 位置:类hola.HelloWorld                         cm =新的ConfigurationManager(args [0]);                                  ^ home / karen / workspace / hola / src / hola / HelloWorld.java:16:找不到符号 符号:类ConfigurationManager 位置:类hola.HelloWorld                         cm = new ConfigurationManager(HelloWorld.class.getResource(“helloworld.config.xml”));                                  ^ home / karen / workspace / hola / src / hola / HelloWorld.java:19:找不到符号 符号:类识别器 位置:类hola.HelloWorld                     识别器识别器=(识别器)cm.lookup(“识别器”);                     ^ home / karen / workspace / hola / src / hola / HelloWorld.java:19:找不到符号 符号:类识别器 位置:类hola.HelloWorld                     识别器识别器=(识别器)cm.lookup(“识别器”);                                              ^ home / karen / workspace / hola / src / hola / HelloWorld.java:23:找不到符号 符号:类麦克风 位置:类hola.HelloWorld                     麦克风麦克风=(麦克风)cm.lookup(“麦克风”);                     ^ home / karen / workspace / hola / src / hola / HelloWorld.java:23:找不到符号 符号:类麦克风 位置:类hola.HelloWorld                     麦克风麦克风=(麦克风)cm.lookup(“麦克风”);                                              ^ home / karen / workspace / hola / src / hola / HelloWorld.java:36:找不到符号 符号:类结果 位置:类hola.HelloWorld                         结果result = recognizer.recognize();                         ^ 12个错误

我的问题是: 我必须添加需要我的项目的所有软件包,或者只添加jar文件和主类吗?

请抽!

这是HelloWord计划:

包hola;

import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;

public class HelloWorld {
    public static void main(String [] args){
        System.out.println("VIcente y karen");
        ConfigurationManager cm;
        System.out.println("Karen entiende esto");
                if (args.length > 0) {
                    cm = new ConfigurationManager(args[0]);
                } else {
                    cm = new ConfigurationManager(HelloWorld.class.getResource("helloworld.config.xml"));
                }

                Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
                recognizer.allocate();

                // start the microphone or exit if the programm if this is not possible
                Microphone microphone = (Microphone) cm.lookup("microphone");
                if (!microphone.startRecording()) {
                    System.out.println("Cannot start microphone.");
                    recognizer.deallocate();
                    System.exit(1);
                }

                System.out.println("Say: (Good morning | Hello) ( Bhiksha | Evandro | Paul | Philip | Rita | Will )");

                // loop the recognition until the programm exits.
                while (true) {
                    System.out.println("Start speaking. Press Ctrl-C to quit.\n");

                    Result result = recognizer.recognize();

                    if (result != null) {
                        String resultText = result.getBestFinalResultNoFiller();
                        System.out.println("You said: " + resultText + '\n');
                    } else {
                        System.out.println("I can't hear what you said.\n");
                    }
                }
    }

}

1 个答案:

答案 0 :(得分:0)

很可能你没有在你的程序中导入正确的类或包(包名是否正确?似乎编译器没有从前几个错误行识别它们)。

即使您的类路径中包含类的JAR文件,您仍然必须在特定的类中导入它们,以便编译器知道您需要哪些外部类。

您还必须为内置的Java类(例如java.util.ArrayList)执行此操作。 如果您提供您的计划,我们将能够为您提供更好的帮助。

如果Jar文件也依赖于其他库,那么它们也必须提供。

使用zip程序(例如winrar)打开您的JAR文件,并检查您导入的包是否存在。你应该看到一个名为edu的文件夹,在其中的文件夹cmu / sphinx / frontend / util中,然后在其中的Microphone.class中。类似地,对于带有文件Recognizer.class的edu.cmu.sphinx.recognizer。

如果您使用的是IDE(例如Eclipse,Netbeans或IntelliJ IDEA),请确保将jar文件添加到项目库列表中。

对于Eclipse,您必须遵循here

步骤