gpt4 book ai didi

Java 堆空间不足

转载 作者:行者123 更新时间:2023-12-03 03:13:13 27 4
gpt4 key购买 nike

在我的java程序中,我使用文本到语音来说出数字,在它说出大约150个数字后,它超出了堆空间(当从JAR打开时)我也尝试过增加堆空间,但问题仍然存在仍然存在。

我尝试过的所有操作:

使用批处理脚本:

java -Xmx1024m -jar Super_Brain Academy.jar
pause

[Super_Brain Academy.jar 是文件名]但这仍然不能解决我的问题,因为它只增加了主 JAR 文件的堆空间,而不是 TTS(freeTTS)。

我也尝试制作一个 fat Jar,然后执行此操作,但问题是当我制作 fat JAR 时,TTS 停止工作,我无法听任何内容。我尝试通过this制作胖JAR方法。我还尝试使用 stackoverflow 上给出的其他方法制作 fat 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

最佳答案

根据您的评论,我认为这是内存管理的问题。

我找到了this链接非常有帮助。您可以在任何适用的地方遵循相同的方法来创建程序 block 内存。

优化后如果遇到同样的错误信息,可以通过this了解如何增加堆大小的链接。

关于Java 堆空间不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23929388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com