最近做了一个优化需求,要写一个脚本,根据用户环境已安装的jdk是32位还是64位,来启动不同的java-xmx最大内存。

因为产品使用的jdk是1.6,而在windows系统中,32位的jdk1.6,Xmx是不能设置过大的,一般1GB多一点就提示无法启动。如下图:

而64位是支持的,产品后面升级成64位了,但是还有许多存量客户使用旧的32位的jdk,这时候就需要根据位数来选择不同内存启动了。

以下为启动脚本:

@echo off
..\jdk\bin\java -Xms128m -Xmx4096m -version >nul 2>&1
if errorlevel 1 goto is32bit
..\jdk\bin\java -jar -Duser.timezone=GMT+8 -Xms128m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError org.xxx.jar -clean -console
:is32bit
where java >nul 2>&1
if errorlevel 1 goto nojava
..\jdk\bin\java -jar -Duser.timezone=GMT+8 -Xms128m -Xmx1460m -XX:+HeapDumpOnOutOfMemoryError org.xxx.jar -clean -console
:nojava
echo Java is not installed
@pause

由于产品的jdk是免安装版的,即不会写入环境变量,所以稍微有点麻烦。这里是先执行一段Xmx4096m的 -version命令,这段命令如果是32位的jkd会有error,而如果是64位则正常执行,通过这种方式来判断产品在运行的jdk的位数。

另外在linux系统中,即使是32位的jdk1.6,设置成Xmx为2G,也是能正常启动的。可能是因为linux是先启动了,后续如果内存有使用到再扩大内存。

根据jdk32位或64位 启动应用选择不同的内存相关推荐

  1. 32位系统和64位系统的选择

    作为一名网络管理员,经常会给办公电脑安装系统,但是大部分企业的办公电脑配置一般不会很高.在选择系统的时候可能需要注意一些问题. 随着XP的淘汰,可能大家都会选择更新到win7,之前2GB内存会考虑增加 ...

  2. 在cmd指令看计算机位数,在.cmd中使用Windows命令来测试32位或64位并运行命令

    我正在编写一个脚本,用于查找注册表值并将该值返回给Windows命令提示符屏幕,并将其添加到.txt文件中.我到了需要测试的位置,看看机器是32位还是64位,这样我才知道使用哪个命令来查找我在注册表中 ...

  3. android sdk64位资源,android SDK 有32位或64位的分别吗

    android环境下搞开发工作,原来用的是32位的(操作系统32位.Eclipse.JDK 都是32位). 现在换了win7 64位系统, Eclipse.JDK 有32位或64位的, 问一下,and ...

  4. 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

    您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...

  5. 支持64位系统的XOR加密后内存加载PE绕过杀毒软件

    http://bbs.pediy.com/showthread.php?t=203910 绝对自动支持32.64位的内存加载源码 无聊逛看雪时,看到了这个. 然后到github上找到了源.就是这里:h ...

  6. 一句话总结Windbg 32位版本和64位版本的选择

    惯了Vsiual Studio的兄弟们可能会因为先入为主的原因以为所有的调试器都应该像它那样,其实不然, 当你安装 Debugging Tools for Windows的时候,你将发现有两个系列的工 ...

  7. 如何判断您是否拥有32位或64位版本的Google Chrome浏览器

    Google Chrome is extremely popular with our readers, but did you know that they also have a 64-bit v ...

  8. 安装32位mysql报错_在CentOS中安装32位或64位MySql报错error: Failed dependencies解决办法...

    在CentOS中安装MySql报错error: Failed dependencies解决办法 安装64位MySql报错内容如下: error: Failed dependencies: libaio ...

  9. Eclipse3.6.2 64位启动报“Failed to load the JNI shared library”错的解决方法

    Eclipse3.6.2 64位解压后双击运行eclipse,报"Failed to load the JNI shared library"错误. 如下图所示: 原来我的jdk是 ...

最新文章

  1. TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement.
  2. 机房墙面为什么要做保温?该怎么做?
  3. Web Dynpro公开课学习
  4. Java监听器完整入门实例
  5. 七夕过后,你分析过自己单身原因的原因吗?
  6. 什么是SAP Graph
  7. 注意.NET Core进行请求转发问题
  8. 我想要一种语言,只需对它说我要干什么就行
  9. vue 实现12个月的平铺式日历插件
  10. 傅里叶变换 FFT 频谱泄漏?
  11. 4招教你们怎么做海报,想要宣传推广就来这
  12. 运维团队(OPS)与技术团队有效沟通配合探讨
  13. n1装哪个版本的linux,斐讯t1/N1是装Ubuntu,还是LinuxDeploy,哪个更好?
  14. 【iOS】Plist-XML-JSON数据解析
  15. 计算机硬盘多少克,人的大脑记忆能力相当于电脑多少G的硬盘?真相出乎你意料!...
  16. 红旗linux如何开远程桌面,配置VNC服务实现红旗Linux远程桌面访问
  17. CodeForces 711C.Coloring Trees【DP】
  18. 手机网页UI框架jQuery Mobile介绍之按钮篇
  19. [macOS]安装homebrew之后提示zsh: command not found: brew
  20. Keras下载数据失败,本地导入

热门文章

  1. java显示公式_如何让Excel中只显示公式不计算
  2. java.lang.object_Java基础--常用API--java.lang.Object
  3. 在Linux系统中如何把文件拷贝到U盘
  4. Python的选择语句
  5. 立体成像系统行业分析-产能、产量、销量、销售额、价格及未来趋势
  6. 教会AI“读唇术”,唇语数据功不可没
  7. 分布函数弱收敛和一致收敛
  8. 手机磁盘IO读写速度测试(OTG)
  9. 互联网的双中台架构实战
  10. 简单Excel微型数据库