[英]including jar files to a classpath
我试图运行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:找不到符号symbol:类ConfigurationManager位置:类hola.HelloWorld ConfigurationManager cm; ^ home / karen / workspace / hola / src / hola / HelloWorld.java:14:找不到符号symbol:类ConfigurationManager位置:类hola.HelloWorld cm = new ConfigurationManager(args [0]); ^ home / karen / workspace / hola / src / hola / HelloWorld.java:16:找不到符号symbol:类ConfigurationManager位置:类hola.HelloWorld cm =新的ConfigurationManager(HelloWorld.class.getResource(“ helloworld.config.xml” )); ^ home / karen / workspace / hola / src / hola / HelloWorld.java:19:找不到符号symbol:类识别器位置:类hola.HelloWorld Recognizer识别器=(识别器)cm.lookup(“识别器”); ^ home / karen / workspace / hola / src / hola / HelloWorld.java:19:找不到符号symbol:类识别器位置:类hola.HelloWorld Recognizer识别器=(识别器)cm.lookup(“识别器”); ^ home / karen / workspace / hola / src / hola / HelloWorld.java:23:找不到符号symbol:类麦克风位置:class hola.HelloWorld麦克风=(麦克风)cm.lookup(“麦克风”); ^ home / karen / workspace / hola / src / hola / HelloWorld.java:23:找不到符号symbol:类麦克风位置:class hola.HelloWorld麦克风=(麦克风)cm.lookup(“麦克风”); ^ home / karen / workspace / hola / src / hola / HelloWorld.java:36:找不到符号symbol:class结果位置:class hola.HelloWorld Result结果= identifier.recognize(); ^ 12个错误
我的问题是:我必须添加需要我的项目的所有软件包,或者仅添加jar文件和主类?
恭喜!
这是HelloWord程序:
礼包
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");
}
}
}
}
很可能您没有在程序中导入正确的类或程序包(程序包名称正确吗?似乎编译器无法从前几行错误中识别出它们)。
即使您的类路径中包含具有类的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,你必须遵循的程序在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.