Avere problemi ottenere FreeTTS e JSAPI di lavoro
Domanda
Prima di tutto io sono su Ubuntu Linux se quello che conta.
Ho una semplice idea di progetto in base al largo della FreeTTS ed il JSAPI (Java Speech API)
Ho scaricato e FreeTTS decompressi e gestire le loro script di build. Poi ha provato la compilazione il mio codice che collega diversi vaso è richiesto nella directory lib nel percorso classe come questa:
javac -cp /home/travis/Desktop/freetts-1.2/lib/jsapi.jar:/home/travis/Desktop/freetts-1.2/lib/freetts.jar HelloUnleashedReader.java
Che poi viene compilato in bytecode Java bene. Tuttavia quando faccio funzionare:
java HelloUnleashedReader
ottengo il seguente errore:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/speech/EngineModeDesc
Qualsiasi aiuto su questo tema sarebbe molto apprezzato in quanto vi sono molti siti giro per la rete parlano di problemi a farla funzionare, ma non molti che discutono la loro soluzione.
Soluzione
È necessario aggiungere il jsapi.jar nel classpath. Il jsapi.jar può essere scompattato eseguendo lib / jsapi.exe all'interno della directory di installazione di FreeTTS.
Altri suggerimenti
Vedo che si sta utilizzando Ubuntu. È necessario accettare la licenza binaria prima di poter utilizzare jsapi.jar. L'utente accetta di questa licenza nel processo di disimballaggio esso. Per jsapi.jar unpack in Ubuntu è necessario digitare quanto segue:
cd ~/Desktop/freetts-1.2/lib
chmod +x ./jsapi.sh
./jsapi.sh
se si riceve un messaggio del tipo
"./ jsapi.sh: 1428: uudecode: non trovato"
quindi installare uudecode con
sudo apt-get install sharutils
e riprovare
ho ottenuto questo errore nonostante ho avuto jsapi.jar sul classpath.
java -cp `ls *.jar | awk '{ORS=":";print}'` -jar WebStartClock.jar
Quello che mi ha aiutato è stato che specifica la classe principale esplicitamente:
java -cp `ls *.jar | awk '{ORS=":";print}'` JSAPIClock
Probabilmente qualcosa di sbagliato nei metadati JAR o giù di lì.