我试图运行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");
}
}
}
}
答案 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
步骤