我一直在使用 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 的名称是:
- 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
我很感激你能给我的任何帮助。
最佳答案
你必须在类路径中包含当前目录:
java -cp .:one.jar:two.jar:three.jar:four.jar:five.jar HelloWorld
注意前导.:
从这里reference :
The default class path is the current directory. Setting the CLASSPATH variable or using the -classpath command-line option overrides that default, so if you want to include the current directory in the search path, you must include "." in the new settings.
关于java - 如何在没有 IDE 的情况下从 Sphinx4 编译和运行 HelloWorld.java 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489637/