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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top