我一直在用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
我不知道这里发生了什么,我还应该说我没有很多使用外部.jars的经验。
.jars的名称是:
我感谢你能给我的任何帮助。
答案 0 :(得分:1)
您必须在classpath中包含当前目录:
java -cp .:one.jar:two.jar:three.jar:four.jar:five.jar HelloWorld
注意领先.:
从此reference:
默认类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项会覆盖该默认值,因此如果要在搜索路径中包含当前目录,则必须包括"。"在新设置中。