进来帮其它部门做了一个模块(swing桌面项目),其中要用到JTable表格查询数据,由于数据量很大,总是报内存溢出。
后来发现是Xmx参数设小了,在一个属性文件里将该参数设为512m即可。
问题虽然解决,但我有点小小的疑问,开发状态时我可以设置eclipse.ini文件或者某个主类的运行参数来加载,实际的项目中这个参数是如何加载的呢?
在他们项目安装目录的根目录下我发现他们的几乎每个模块都对应一个属性文件,比如工资查询系统: salaryQuery.properties,里面几乎都有如下的设置。(为考虑版权问题隐去了许多真实文字)MainClass=package1.package2.SalaryQueryMainFrame
ProgramArgs=***
VMArgs=-Xms128m -Xmx512m
ClassPath=jars/001.jar,jars/002.jar,jars/002.jar有经验的朋友请帮我分析一下具体代码是如何加载这些参数的?具体点说是怎么让VMArgs=-Xms128m -Xmx512m在实际运行时让我这个模块加载这个参数的?
后来发现是Xmx参数设小了,在一个属性文件里将该参数设为512m即可。
问题虽然解决,但我有点小小的疑问,开发状态时我可以设置eclipse.ini文件或者某个主类的运行参数来加载,实际的项目中这个参数是如何加载的呢?
在他们项目安装目录的根目录下我发现他们的几乎每个模块都对应一个属性文件,比如工资查询系统: salaryQuery.properties,里面几乎都有如下的设置。(为考虑版权问题隐去了许多真实文字)MainClass=package1.package2.SalaryQueryMainFrame
ProgramArgs=***
VMArgs=-Xms128m -Xmx512m
ClassPath=jars/001.jar,jars/002.jar,jars/002.jar有经验的朋友请帮我分析一下具体代码是如何加载这些参数的?具体点说是怎么让VMArgs=-Xms128m -Xmx512m在实际运行时让我这个模块加载这个参数的?
解决方案 »
- 100分问数据库连接该怎样关闭
- PreparedStatement ps = this.conn.prepareStatement("delete from 后台报错
- CardLayout下的JFrame中的Jpanel如何设置焦点监听事件?
- 用java如何做套打程序?
- 求iReport 1.1.0和jasperReports 1.2.0的文件,SourceForge.net下载不了啊,被电信封了。:(
- 急求float数组相同元素个数元素计数50分
- 我也做一个调查,你抽烟吗?
- 请问 怎样才能得到一个字符串的编码方式?
- JAVA生成。EXE怎么生成?
- 讨论,如果微软封杀java,java还能活得下去吗?是不是我们又要改做C#?
- 程序探讨
- JTable 如何设置某个单元格的背景颜色
就比如你上面那个文件,最后可能生成一个bat文件。
bat文件中先设置classpath,然后:
java -p ClassPath package1.package2.SalaryQueryMainFrame
至于VMArgs,可能做成其他的参数,而参数的key,可能就不叫VMArgs了。
还有可能,很多参数写成了一个文件,参数指定这个文件。
但是我这个模块只是其中一个类而已(主程序入口可能加载了这些参数)。如果只需加载一次运行参数,为什么要在每个模块属性文件中设置 -Xms128m -Xmx512m 参数呢?
不解。
调用模块只是 new 一个类而已。没看见程序里调用了*.properties文件。
ProgramArgs=***
VMArgs=-Xms128m -Xmx512m
ClassPath=jars/001.jar,jars/002.jar,jars/002.jar 这是你的原话。
既然配置里都有MainClass,那肯定就是有入口方法了。
那么当单独启动这个MainClass的时候这些配置肯定有办法生效啊。
如果你的class没有main方法,只是从外部简单的new,我想不出有什么方法能让这个配置生效。