Java堆空间不足
在我的java程序中,我使用文本到语音来说出数字,在它说出大约150个数字后,它超出了堆空间(从JAR打开时),我也尝试增加堆空间,但问题仍然存在 我所做的一切: 使用批处理脚本:Java堆空间不足,java,jar,Java,Jar,在我的java程序中,我使用文本到语音来说出数字,在它说出大约150个数字后,它超出了堆空间(从JAR打开时),我也尝试增加堆空间,但问题仍然存在 我所做的一切: 使用批处理脚本: java -Xmx1024m -jar Super_Brain Academy.jar pause [Super\u Brain Academy.jar是文件名],但这仍然不能解决我的问题,因为它只增加了主jar文件的堆空间,而没有增加TTS(freeTTS)的堆空间 我也试着制作一个胖罐子,然后做这个,但问题是当
java -Xmx1024m -jar Super_Brain Academy.jar
pause
[Super\u Brain Academy.jar
是文件名],但这仍然不能解决我的问题,因为它只增加了主jar文件的堆空间,而没有增加TTS(freeTTS)的堆空间
我也试着制作一个胖罐子,然后做这个,但问题是当我制作胖罐子时,TTS停止工作,我听不到任何东西。我试着用这种方法做这个胖罐子。我还试图用stackoverflow上给出的其他方法制作胖罐子,但它们很混乱,我无法理解。我是一个新手(到目前为止你可能已经明白了这一点),并且使用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);
}
private void RandomjBActionPerformed(java.awt.event.ActionEvent evt){
//单击按钮时,它会根据条件生成一个随机数,并大声说出
声音;
voice=voiceManager.getVoice(VOICENAME);
voice.allocate();
//此处提供了一些变量声明和初始化以及set-visible命令(因该问题被删除为不可逆)
对于(g=0;g=0;){
ran=(int)(Math.random()*(c));//开始创建随机数
如果(ran>=c/10){
g=1;
//这里有一些逻辑陈述
}//如果结束
如果(g!=0){
如果(num根据您的评论,我认为这是内存管理的问题
我发现这个链接非常有用。你可以在任何地方使用它来制作你的程序块内存
优化aslo后,如果您收到相同的错误消息,您可以通过链接了解如何增加堆大小。Mya可能是因为您没有正确释放资源。显示代码将有助于在调整JVM选项(Xmx、Xms等)之前先尝试修复代码中的内存泄漏@Dibya哪段代码?build.xml?我建议您在visualVM中对应用程序进行内存分析,看看它为什么使用这么多内存。您可能有一个bug。@Emanuelsarigan您确定存在内存泄漏,因为默认情况下只有4或5 MB,我认为这对于tts来说是不够的……我也没有任何调试器来做(我使用的是netbeans)我相信您提供的链接没有任何用处,因为这正是我正在做的(通过批处理脚本,我给出了cmd args)但仍然存在问题,就内存管理而言……我一定会调查that@DakshShah:您必须有java代码才能完成某些任务,对吗?因为您从堆中得到了一个java
错误!我的建议是优化您的java代码。增加堆大小并尝试一下。如果java代码没有释放正确地输入资源,那么你就不能从批处理文件中做很多事情了。哦,现在我明白了,很抱歉我误解了…我也会在问题中添加代码。