2010-05-17 27 views
1

首先關閉我在Ubuntu Linux上,如果重要的話。
我有一個簡單的基於FreeTTS和JSAPI(Java語音API)的項目想法有問題獲得FreeTTS和JSAPI工作

我已經下載並解壓縮FreeTTS並運行它們的構建腳本。然後試圖編譯我的代碼鏈接的幾個罐子的lib目錄需要到類路徑是這樣的:

javac -cp /home/travis/Desktop/freetts-1.2/lib/jsapi.jar:/home/travis/Desktop/freetts-1.2/lib/freetts.jar HelloUnleashedReader.java 

,然後編譯成Java字節碼就好了。 然而,當我運行:

java HelloUnleashedReader 

我收到以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/speech/EngineModeDesc 

在這個問題上的任何幫助將因爲周圍有淨許多網站討論用得到它的工作問題,不勝感激但討論他們的解決方案的人並不多。

+0

這也發生在我身上,雖然我確實在-cp上有jsapi.jar。奇怪的。 – 2011-02-17 22:40:27

回答

1

您需要將jsapi.jar添加到您的類路徑中。可以通過在freetts安裝目錄中運行lib/jsapi.exe來解壓jsapi.jar。

+0

我試過這個,得到了同樣的錯誤。 – Travis 2010-05-17 17:13:27

+0

您可以試試: java -cp /home/travis/Desktop/freetts-1.2/lib/jsapi.jar:/home/travis/Desktop/freetts-1.2/lib/freetts.jar :. HelloUnleashedReader – 2010-05-20 06:56:46

5

我看到您使用的是Ubuntu。在使用jsapi.jar之前,您必須同意二進制許可證。您在解壓縮包的過程中同意此許可證。要在Ubuntu解壓jsapi.jar您可以鍵入以下內容:如果你收到一條消息,像

"./jsapi.sh: 1428: uudecode: not found"

然後用

sudo apt-get install sharutils 

安裝uudecode的,然後再試一次

+0

第二部分是我遇到的麻煩,因爲uudecode不是Ubuntu的標準包裝包。謝謝! – Jason 2011-12-07 23:37:08

0

cd ~/Desktop/freetts-1.2/lib 
chmod +x ./jsapi.sh 
./jsapi.sh 

儘管我在classpath上有jsapi.jar,但我得到了這個錯誤。

java -cp `ls *.jar | awk '{ORS=":";print}'` -jar WebStartClock.jar 

什麼幫助我明確地被指定主類:

java -cp `ls *.jar | awk '{ORS=":";print}'` JSAPIClock 

可能出錯的JAR元左右。