在我的java程序中,我使用文本到语音来说出数字,在它说出大约150个数字之后它从堆空间中消失(从JAR打开时)我确实尝试增加堆空间但仍然是问题仍然存在。
使用批处理脚本:
java -Xmx1024m -jar Super_Brain Academy.jar
pause
[Super_Brain Academy.jar
是文件名],但这仍然无法解决我的问题,因为它只增加了主JAR文件而不是TTS(freeTTS)的堆空间。
我也尝试制作一个胖胖的Jar然后这样做,但问题是当我制作胖JAR时TTS停止工作而我无法听任何东西。我试图通过this方法制作胖JAR。我还尝试从stackoverflow上给出的其他方法制作胖JAR,但是它们让我感到困惑,我无法理解它们。我是一个新手(你可能已经知道到现在为止)和使用Netbeans 8。
根据我的知识,我认为错误必须来自这个代码块,它位于一个单独的java文件中:
private static final String VOICENAME = "kevin16";
VoiceManager voiceManager = VoiceManager.getInstance();
//这里有些代码..........
private void RandomjBActionPerformed(java.awt.event.ActionEvent evt) {
//When the button is clicked it generates one random number according to the conditions and speaks it up
Voice voice;
voice = voiceManager.getVoice(VOICENAME);
voice.allocate();
//Some variable declarations and initializations along with set visible commmands were here(removed as irrevelant for the problem)
for (g = 0; g==0;) {
ran = (int) (Math.random() * (c)); // Random Number Creation Starts
if(ran>=c/10){
g = 1;
//Some logic statements here
}//IF ENDS
if(g!=0){
if(num<0){
num = num * (-1); // MAKING NUM ALWAYS +ve
}
}//if(g!-0) ends here
}//for loop ends
d = d+ran;
t4.setText("" + ran);
voice.speak(t4.getText());
listenanum.setText("" + d);
listenanum.setVisible(false);
}
一次又一次地点击 randomjB ,这就是出现问题的时候。 (我从上面的代码中删除了很多行,所以它对你来说实际上没有意义......但我只留下了那些我认为重要的行)
对于randomjB的完整代码,请检查this