`

项目在64位JDK下正常,32位下出现异常

 
阅读更多

这几天,发现项目在64位JDK下启动,一切正常,但是换到32位的JDK下之后,启动出现java.lang.StackOverflowError异常。

 

关于java.lang.StackOverflowError异常,一般情况下是代码写的有问题,出现了死循环或深层次的递归调用,导致内存溢出。

 

但是我们的项目,除在64位JDK下正常外,部署在公司的服务器上,使用中也一切良好,因此基本排除这个可能。那么就应该是32位和64位的JDK本身的区别,导致了项目运行内存不够从而抛出异常。

 

根本原因,应该是项目太过庞大,纵观我们的项目,maven管理的主项目和模块项目粗略数了下,竟然达到了50个之多,在这之前已经对JVM的各项参数内存进行了加大配置,不然无法运行,配置如下:

 

-Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m

 

该配置在64位的JDK下运行一切正常,但是换到32位之下后,出现上面所说的问题,加大上面配置的各项内存后,发现问题依旧。

 

对比32位和64位JDK的各项默认参数配置,发现线程的默认堆栈大小32位JVM,默认堆栈最大是320k 而64位JVM是1024K,看来网上所说JDK 5.0之后已经默认为1M是针对64位而言,将32位JDK的线程堆栈加大,问题解决。

 

配置如下,添加了-Xss1024k

-Xms512m -Xmx1024m -Xss1024k -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m

 

这只是权宜之计,关键所在还是项目规划要做好啊!!

 

分享到:
评论

相关推荐

    android zxing jdk1.6 扫描条码修改项目包

    本项目针对这个问题进行了优化,使得Zxing库能在JDK 1.6环境下正常运行。 一、JDK版本兼容性问题 Java Development Kit (JDK) 的不同版本可能包含不同的API和语言特性。JDK 1.7引入了一些新的特性和改进,如try-...

    jdk7u80_win.rar

    通过在try语句块中声明资源,当程序执行完毕或出现异常时,资源会自动关闭,避免了内存泄漏和资源未释放的问题。 3. **多线程并行GC优化**:JDK 7改进了垃圾收集器,尤其是G1(Garbage-First)收集器,提高了应用的...

    jdk1.5.0_22.rar

    这个版本是针对Windows 64位操作系统设计的,确保在64位环境下能够正常工作,为开发者提供了必要的工具和库。 **主要特性与改进:** 1. **泛型(Generics)**:这是JDK 1.5引入的一项重大特性,允许在定义类、接口...

    jdk8u231版本,匹配RXTXcomm.jar(否则会崩溃)

    当使用JDK 8u231开发或运行需要串行通信功能的Java应用时,如果没有正确地包含RXTXcomm.jar,程序可能会出现异常或者崩溃。这是因为JDK本身并不包含对所有串行通信功能的完整支持,而RXTX提供了这些缺失的功能。因此...

    SpringCloud+JDK17整合EaseExcel记录

    本教程将围绕"SpringCloud+JDK17整合EaseExcel"这一主题,深入探讨如何在Spring Cloud项目中利用EaseExcel进行数据交互。 首先,我们来看Spring Cloud的基础知识。Spring Cloud是一系列框架的有序集合,它为开发者...

    dubbo的jdk1.8可运行版本

    如果一切顺利,应用应该能在JDK 1.8环境下正常运行。 6. **测试**:运行应用并进行功能测试,确保所有功能都能正常工作。若有任何异常,根据错误信息进行调试和修复。 在【压缩包子文件的文件名称列表】中,只提到...

    黑马程序员JAVA学习中涉及的maven、jdk以及黑马springboot源项目运行时存在的异常问题

    在Java开发领域,Maven、JDK和Spring Boot是三个至关重要的组件,它们共同构建了高效、便捷的开发环境。让我们深入探讨这三个组件以及在实际使用中可能遇到的问题。 首先,Maven是一个项目管理和综合工具,它通过...

    java混淆jocky,不限jdk版本

    在压缩包中,`jdk版本问题说明.txt`文件可能包含了如何解决Jocky在不同JDK版本中可能出现的问题。通常,这些问题可能涉及依赖库的兼容性、API调用的差异或者特定版本的编译选项。阅读这个文档将帮助开发者了解如何...

    commons-files1.3和2commons-io2.2包适用于jdk1.6

    在本场景中,我们关注的是两个特定的组件:Commons Files 1.3 和 Commons IO 2.2,它们在 JDK 1.6 的环境下被证实可以正常工作,用于实现视频上传功能。 首先,让我们深入了解一下 Apache Commons Files 1.3。这个...

    java中JDK在运行时出现的常见问题.docx

    本文将深入探讨在Java中使用JDK运行程序时可能出现的一些常见问题,并提供相应的解决策略。 1. **字符编码问题** 在描述中提到的问题主要涉及字符编码。Java源代码默认使用UTF-8编码,但如果你使用记事本或其他不...

    json-lib-2.4-jdk15

    "json-lib-2.4-jdk15" 版本特别强调了与JDK 1.5的兼容性,这意味着即使在较旧的Java环境下,也可以正常使用此库进行JSON处理。 6. **性能与优化** 虽然json-lib 是一个功能丰富的库,但随着技术的发展,后来出现...

    喜提JDK的BUG一枚!多线程的情况下请谨慎使用这个类的stream遍历。.doc

    然而,近期一个在RocketMQ项目中发现的问题揭示了一个隐藏的陷阱:在多线程环境下,使用`LinkedBlockingQueue`的`stream`遍历可能会导致意料之外的问题,甚至出现死循环。 首先,`LinkedBlockingQueue`为何被视为...

    jwfd开源工作流JDK1.8和WINDOWS7版本

    《jwfd开源工作流在JDK1.8和Windows7环境下的应用与优化》 在信息化日益发展的今天,工作流管理系统(Workflow Management System, WMS)已经成为企业提高效率、规范流程的重要工具。jwfd是一款开源的工作流引擎,...

    jocky1.0.3 (原joc) java混淆器 去除jdk版本限制.rar

    - **版本控制**:混淆前做好代码版本备份,以便在出现问题时能快速恢复原始代码。 - **文档更新**:混淆后的类名和方法名变得难以理解,所以混淆前应更新相应的API文档和注释。 综上所述,Jocky1.0.3是一款强大的...

    linux部署项目常见异常大全

    在进行Linux环境下项目的部署与运维过程中,经常会遇到各种各样的异常问题。本文将基于一则具体的案例来深入剖析一种常见的异常情况——“页面URL访问呈现空白页”,并进一步探讨其背后的深层次原因及解决方案。 ##...

    关于spring版本与JDK版本不兼容的问题及解决方法

    通常情况下,开发者在选择Spring版本和JDK版本时需留意兼容性,否则可能会遇到不兼容的问题,这将导致应用程序在运行时出现错误。 不兼容问题主要表现为运行时异常,例如java.lang.IllegalArgumentException,这...

    window tomcat项目迁移到linux

    确保下载正确版本的二进制文件,例如 `jdk-6u20-linux-i586.bin`。 - 将下载的JDK文件复制到 `/opt` 目录下,并赋予执行权限。这可以通过命令 `#cp XX /opt/` 和 `#chmod a+x jdk-6u20-linux-i586.bin` 实现。 - ...

    JPype_64位_Python27

    这意味着如果用户的操作系统是32位的,这个版本的JPype可能无法正常工作。64位版本通常能够处理更大的内存和更复杂的计算任务,但也需要相应的64位Python环境。 【压缩包子文件的文件名称列表】: JPype-0.5.4.2 这...

    解决idea使用maven编译正常但是运行项目时却提示很多jar包找不到的问题

    使用IDEA和Maven可以方便地进行项目开发和管理 HOWEVER,有时在使用IDEA和Maven进行项目编译和运行时,却会出现一些问题,本文将详细介绍解决IDEA使用Maven编译正常但是运行项目时却提示很多jar包找不到的问题。...

    jsch版本50-53.rar

    同时,需要注意处理异常,确保在出现错误时能够优雅地关闭连接。 总的来说,JSCH是一个强大的工具,使得Java开发者能够方便地集成SSH2功能,尤其在处理SFTP操作时。通过"jsch版本50-53.rar",开发者可以获取多个...

Global site tag (gtag.js) - Google Analytics