ECLIPSE不能调试,提示不能连接至VM
是不是你的环境变量没有配置好,或者是JDK没有安装
运行Eclipse,编写程序,运行,一切正常。可是当设上断点debug时,程序并不停在断点上,其效果与运行一样。同时Eclipse会报出如下错误:
Cannot connect to VM
com.sun.jdi.connect.TransportTimeoutException
说实话其原因我也真是不清楚。上网查主要有以下几种说法(解决方法下面会讲):
1)Eclipse与ipv6不兼容导致的问题,解决办法是将ipv6卸载或关闭
2)localhost设置问题
3)Eclipse中JRE的配置问题。
下面说一下解决方案:
1)禁用ipv6
事实上就是简单的几步,我们可以修改下面两个文件以阻止IPv6内核模块的加载:
/etc/modprobe.conf - 内核模块配置文件
?????? /etc/sysconfig/network - 网络配置文件
/etc/modprobe.conf
编辑/etc/modprobe.conf文件, # vi /etc/modprobe.conf
在其中加入下面这一行,
?install ipv6 /bin/true
保存并退出。
/etc/sysconfig/network
编辑/etc/sysconfig/network文件, # vi /etc/sysconfig/network
在其中加入下面配置项:
NETWORKING_IPV6=no
IPV6INIT=no
保存并退出文件。
重启网络:
# service network restart
# rmmod ipv6
也可以直接重启以便使用刚刚做的更改生效:
# reboot
如果想检查当前IPv6是否已禁用,可以使用下列命令:
?# lsmod | grep ipv6
# /sbin/ifconfig
2)设置localhost
保证?/etc/hosts文件中有如下一行:
127.0.0.1 localhost.localdomain localhost
如果有就不作处理,没有就填上。
3)将Eclipse中配置的JRE全部改为JDK
在Eclipse中的Windows-> Preferences -> Java -> Installed JREs中
点击Search,搜索JDK的安装路径(如果使用RPM安装的,其默认路径为/usr/java)?
搜索结束后会多出三个选项(default、jdk1.7.0、latest)选择jdk1.7.0。
然后在下面的Execution Environment中将J2SE-1.2到J2SE-1.5以及JavaSE-1.6、JavaSE-1.7还有JRE-1.1的Compatible JREs全部选为jdk1.7.0。点击OK。
现在试一下,如果你的还不能调试,那我也没有辄了。
但是要声明一点:
如果你同时还遇到了,我上一篇博客《【转】Linux下SWT“no swt-pi-gtk-3232 in java.library.path”的错误》里提到的问题。那么,你需要将那些.so的文件放到jdk的lib目录下。如果jdk用rpm安装的话,默认路径应该为 /usr/java/jdk1.7.0/lib/i386。