2015-05-27 59 views
0

我一直在用Eclipse測試Sphinx4中的例子(HelloWorld.java),但我想從命令行編譯並運行它們。 該應用程序需要5個.jars才能運行,我已經讀過,爲了編譯一個帶有多個.jars的java類,我需要執行下面的命令(作爲一個例子,我將顯示簡稱):如何編譯並運行Linux中的Sphinx4 without和IDE的HelloWorld.java示例?

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

控制檯不拋出任何錯誤消息:

[email protected]:~/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 
[email protected]:~/Projects/citadel_voices/sphinx_test > 

我認爲編譯成功。現在我想運行應用程序,我看了,爲了做到這一點,我有如下(使用短名稱例子如前)執行命令:

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

這是控制檯拋出消息:

[email protected]:~/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

我感謝你能給我的任何幫助。

+0

你確定你的'HelloWorld.java'文件包含適當的'main'方法? – RealSkeptic

+0

HelloWorld.class在哪裏? – Ingo

+0

我100%肯定HelloWorld.java包含一個有效的主要方法。 – AmirBayareh

回答

1

你必須包括在類路徑當前目錄:

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.

+0

非常感謝您提供這些信息。我包括了「。」但現在它顯示另一個錯誤: '在線程中的異常「main」java.lang.NoClassDefFoundError:HelloWorld(錯誤的名稱:edu/cmu/sphinx/demo/helloworld/HelloWorld)' 我想我知道什麼是問題,在HelloWorld.java代碼中,還包含一個包: 「package edu.cmu.sphinx.demo.helloworld;」 如果我需要使用一個包進行編譯,我是否應該按照與之前相同的說明進行操作? 謝謝。 – AmirBayareh

+0

我剛剛評論了該包裝的產品線,現在一切正常,因爲它應該!非常感謝你! – AmirBayareh

+0

如果您不想評論軟件包,則必須將類放入與路徑相對應的文件夾層次結構中(即,package a.b.c => path a/b/c) –