我一直在用Eclipse测试Sphinx4中的示例(HelloWorld.java),但是我想从命令行编译并运行它们。
应用程序需要5.jars才能运行,我已经读过,为了用多个.jars编译一个java类,我需要执行以下命令(作为示例,我将显示短名称):

javac -cp one.jar:two.jar:three.jar:four.jar:five.jar HelloWorld.java

控制台不会抛出任何错误消息:
parias001@parias001-pc:~/Projects/citadel_voices/sphinx_test > javac -cp jsapi.jar:sphinx4.jar:TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar:WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz.jar:WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar HelloWorld.java
parias001@parias001-pc:~/Projects/citadel_voices/sphinx_test >

我认为汇编成功了。现在我想运行这个应用程序,我读到为了实现这个目的,我必须执行如下命令(使用前面的短名称示例):
java -cp one.jar:two.jar:three.jar:four.jar:five.jar HelloWorld

这是控制台抛出的消息:
parias001@parias001-pc:~/Projects/citadel_voices/sphinx_test > java -cp jsapi.jar:sphinx4.jar:TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar:WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz.jar:WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar HelloWorld
Error: Could not find or load main class HelloWorld

我不知道这是怎么回事,我也应该说我没有太多使用外部jar的经验。
.jars的名称是:
jsapi.jar文件
狮身人面像4.jar
TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar数字键盘
《华尔街日报》8gau_13dCep_8kHz_31mel_200Hz_3500Hz.jar
《华尔街日报》8gau_13dCep_16k_40mel_130Hz_6800Hz.jar
我很感激你能给我任何帮助。

最佳答案

必须在类路径中包含当前目录:

java -cp .:one.jar:two.jar:three.jar:four.jar:five.jar HelloWorld

注意前导.:
从这个reference
默认的类路径是当前目录。设置CLASSPATH变量或使用-CLASSPATH命令行选项将覆盖该默认值,因此如果要在搜索路径中包含当前目录,则必须在新设置中包含“.”。

07-25 22:42
查看更多