首先,如果重要的话,我会使用Ubuntu linux 我有一个基于FreeTTS和JSAPI(Java Speech API)
的简单项目构思我已经下载并解压缩FreeTTS并运行他们的构建脚本。然后尝试编译我的代码,将lib目录中所需的几个jar链接到类路径中,如下所示:
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 :(得分:5)
我看到你正在使用Ubuntu。您必须先同意二进制许可证才能使用jsapi.jar。您在打开包装的过程中同意此许可。要在Ubuntu中解压缩jsapi.jar,您可以输入以下内容:
cd ~/Desktop/freetts-1.2/lib
chmod +x ./jsapi.sh
./jsapi.sh
如果您收到
之类的消息“./ jsapi.sh:1428:ududecode:not found”
然后用
安装uudecodesudo apt-get install sharutils
再试一次
答案 1 :(得分:1)
您需要将jsapi.jar添加到类路径中。可以通过在freetts安装目录中运行lib / jsapi.exe来解压缩jsapi.jar。
答案 2 :(得分:0)
尽管我在classpath上有jsapi.jar,但我得到了这个错误。
java -cp `ls *.jar | awk '{ORS=":";print}'` -jar WebStartClock.jar
帮助我的是明确指定主要类:
java -cp `ls *.jar | awk '{ORS=":";print}'` JSAPIClock
JAR元数据可能有问题。