eclipse 启动,同时启动的虚拟机吗?
2017-08-12 11:43
162 查看
个人的疑问蛮多的,不知道脑子每天在干嘛,天天乱想!!都怪自己无知呀!
俺的新座右铭:好好学习,天天向上。。。
问题整理如下:
eclipse 启动,同时启动的虚拟机吗?
jvm什么时候启动的,什么时候关闭的?
eclipse的配置文件eclipse.ini里面的参数是用来启动虚拟机的吗?
那么在eclipse里面调试程序使用到参树和eclipse.ini有什么区别?
链接:https://www.zhihu.com/question/45503863/answer/99074589
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
通过 Activity Monitor 观察 IDEA 的内存占用情况, 发现每打开一个 project, 内存占用都会升高; 然后如果关掉一个 project, 内存占用确不会降低. 这看起来很像内存泄露…关了一个线程, 这个线程占用的资源不是都会释放掉吗?
俺的新座右铭:好好学习,天天向上。。。
问题整理如下:
eclipse 启动,同时启动的虚拟机吗?
jvm什么时候启动的,什么时候关闭的?
eclipse的配置文件eclipse.ini里面的参数是用来启动虚拟机的吗?
那么在eclipse里面调试程序使用到参树和eclipse.ini有什么区别?
注:以下为自己找到的相关回复,以后会跟进理解,加入自己的理解体会;
Eclipse是一个用Java实现的IDE。它的上层逻辑都是用Java写的,GUI库底层用了SWT有一部分native组件。
在Windows上跑Eclipse的话,那个eclipse.exe其实只是一个“启动程序”(launcher),通过JNI来启动Eclipse真正的Java本体。
Equinox Launcher
所以,当eclipse.ini通过JNI的API找到了合适的JVM,准备进入Eclipse的Java本体的时候,JVM就启动了。而在退出Eclipse的时候,这个JVM才会退出。
eclipse.ini 配置文件就是用来配置这个运行Eclipse用的JVM实例的。
在EclipseJDT里写Java程序,如果实用debug或者run功能,那么Eclipse JDT会另外启动一个JVM进程来执行指定的Java程序。项目配置里debug/run里的arguments就是用来配置这个另外的JVM进程用的。
作者:RednaxelaFX链接:https://www.zhihu.com/question/45503863/answer/99074589
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论区回复
一般情况:一个Java程序需要一个JVM实例去运行。跑一个Eclipse需要一个对应的JVM实例;同时跑两个就会同时有2个JVM实例。
我用 jps 命令查看发现只有一个 JVM 实例. 那 IDEA 是通过启动多个线程来实现多个多 project 的吗? 开一个 project 起一个线程, 关一个 project 是终止一个线程.通过 Activity Monitor 观察 IDEA 的内存占用情况, 发现每打开一个 project, 内存占用都会升高; 然后如果关掉一个 project, 内存占用确不会降低. 这看起来很像内存泄露…关了一个线程, 这个线程占用的资源不是都会释放掉吗?
答:
JVM有自己的内存管理
从操作系统申请的内存不是马上就还回去,万一用到了呢。。提高性能
JVM自身是不关心像eclipse.ini这样的配置文件的。Eclipse的launcher会读入这个配置文件,并把里面的内容通过JNI的API来作为参数传给创建JVM的函数。
eclipse只是个ide工具 不影响jvm的启动 web容器启动后会启动虚拟机,这得看您是如何启动Java。在Eclipse JDT里用内建run/debug的话,Eclipse就是负责把配置好的启动参数传下去。
而如果是别的方式启动Java(例如别的Eclipse插件可能会调用个Tomcat/JBoss脚本之类),那就不是同一回事。
其实你可以看下,在eclipse目录里有个ini文件,里面就是启动eclipse的JVM参数。如果你强退eclipse,他会告诉你我们JVM出什么错了。然后列出所有JVM的参数。更粗暴的还可以直接visualvm去连系统里的eclipse,是可以连接的。
相关文章推荐
- eclipse - 解决虚拟机与IDE位数不同时启动不了的问题(位数:32位/64位)
- eclipse 虚拟机启动参数的一些问题及设置
- 日常总结(五)同时启动myeclipse和eclipse如何解决端口被占用
- 我的电脑用eclipse开发android,每次只能启动一次android虚拟机,第二次点run的时候就永久的停留在27%上???
- 同时启动两个虚拟机
- eclipse启动创建java 虚拟机失败
- 指定eclipse启动时使用的jdk版本(在64位操作系统中同时运行64位eclipse和32位eclipse)
- eclipse 不能启动虚拟机
- eclipse启动虚拟机报PANIC: Could not parse file: .;C:\Users\Andme\.android\avd\4.1.ini解决方案
- eclipse启动genymotion插件reg启动visual box 虚拟机
- 启动Eclipse提示找不到虚拟机解决方法
- eclipse启动genymotion插件reg启动visual box 虚拟机
- 设置VMware10开机自启动并同时启动虚拟机镜像系统
- eclipse 无法启动 无法创建虚拟机 怎么解决?
- eclipse 启动两个android AVD(虚拟机)
- eclipse启动时虚拟机初始内存配置
- eclipse添加多个项目同时启动时的问题
- 如何在一个Eclipse同时启动两个Tomcat
- 启动eclipse提示找不到虚拟机解决办法
- vbox虚拟机未启动3D加速导致ubuntu12.04的launcher icon size 无法调整(同时dash图标变灰色)