Tendo problemas para conseguir Freetts e Jsapi trabalhando
Pergunta
Primeiro, estou no Ubuntu Linux, se isso importa.
Eu tenho uma ideia simples de projeto baseada em Freetts e o JSAPI (Java Speech API)
Eu baixei e descompactei Freetts e execute o script de compilação. Em seguida, tentei compilar meu código vinculando vários jars necessários no diretório Lib ao caminho da classe como este:
javac -cp /home/travis/Desktop/freetts-1.2/lib/jsapi.jar:/home/travis/Desktop/freetts-1.2/lib/freetts.jar HelloUnleashedReader.java
Que então compila com Java Bytecode muito bem. No entanto, quando eu corro:
java HelloUnleashedReader
Estou tendo o erro a seguir:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/speech/EngineModeDesc
Qualquer ajuda nessa questão seria muito apreciada, pois existem muitos sites na rede discutindo problemas em fazê -lo funcionar, mas não muitos que discutem sua solução.
Solução
Você precisa adicionar o jsapi.jar ao seu caminho de classe. O jsapi.jar pode ser descompactado executando lib/jsapi.exe dentro do diretório de instalação do Freetts.
Outras dicas
Vejo que você está usando o Ubuntu. Você deve concordar com a licença binária antes de poder usar o jsapi.jar. Você concorda com esta licença no processo de descompactá -la. Para descrever o jsapi.jar no Ubuntu, você digitaria o seguinte:
cd ~/Desktop/freetts-1.2/lib
chmod +x ./jsapi.sh
./jsapi.sh
Se você receber uma mensagem como
"./jsapi.sh: 1428: uudecode: não encontrado"
Em seguida, instale o uudecode com
sudo apt-get install sharutils
e tente novamente
Recebi esse erro, apesar de ter Jsapi.jar no Classpath.
java -cp `ls *.jar | awk '{ORS=":";print}'` -jar WebStartClock.jar
O que me ajudou foi especificar explicitamente a classe principal:
java -cp `ls *.jar | awk '{ORS=":";print}'` JSAPIClock
Provavelmente algo errado nos metadados do jar ou mais.