【问题标题】:How to compile and run HelloWorld.java example from Sphinx4 without and IDE in Linux?如何在没有 IDE 的情况下在 Linux 中从 Sphinx4 编译和运行 HelloWorld.java 示例?
【发布时间】:2015-08-09 23:05:57
【问题描述】:

我一直在使用 Eclipse 测试来自 Sphinx4 的示例 (HelloWorld.java),但我想从命令行编译和运行它们。 该应用程序需要 5 个 .jar 才能运行,我已经阅读过,为了编译具有多个 .jar 的 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 的经验。

.jar 的名称是:

  1. jsapi.jar
  2. sphinx4.jar
  3. TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar
  4. WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz.jar
  5. WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar

感谢您能给我的任何帮助。

【问题讨论】:

  • 您确定您的HelloWorld.java 文件包含正确的main 方法吗?
  • HelloWorld.class 在哪里?
  • 我 100% 确定 HelloWorld.java 包含有效的 main 方法。
  • 所有文件都在同一个目录中。

标签: java linux eclipse jar sphinx4


【解决方案1】:

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

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

注意前导.:


来自reference

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

【讨论】:

  • 非常感谢您提供这些信息。我包括了“。”但现在它显示另一个错误:Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: edu/cmu/sphinx/demo/helloworld/HelloWorld) 我想我知道问题出在哪里,在 HelloWorld.java 代码中,还包含一个包:“package edu.cmu.sphinx.demo.helloworld;”如果我需要使用包进行编译,我是否应该按照与以前相同的说明进行操作?谢谢。
  • 我刚刚在包中注释了这一行,现在一切正常!非常感谢!
  • 如果您不想评论包,您必须将类放在与路径对应的文件夹层次结构中(即包 a.b.c => 路径 a/b/c)
猜你喜欢
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多