用TortoiseSVN chekout的代码不能在eclipse中被subclipse识别的问题

之前一直用tortoiseSVN来checkout、update、commit代码,但是eclipse的subclipse插件那么好用,可惜我的eclipse插件subclipse不能识别tortoiseSVN签出的代码目录中已经有.svn目录。百度了好几把,没找到比较好的方案,于是自己摸索了一下subclipse的功能,发现其中有个share project的功能可以解决这个问题。

有如下的四个步骤:

1. 在多个project或者整个work set上右键–>Team–>Share Project

右键,查看Team
右键,查看Team

2. 选择svn:

选择svn进行关联
选择svn进行关联

3. 选择需要与svn关联的工程:

选择工程进行关联
选择工程进行关联

4. 验证与svn的关联

将项目链接至资源库
将项目链接至资源库

5. 关联完成,稍等片刻后,工程会逐一与svn资源库关联上,然后就能在每个工程、文件夹、文件后面看到资源和版本信息了。

 

eclipse远程debug启动报错:JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:741]

参考http://1985wanggang.blog.163.com/blog/static/776383320120384555181/http://1985wanggang.blog.163.com/blog/static/776383320120384555181/上面的eclipse远程debug配置方式,发现如果在eclipse中关掉debug进程和远程的应用进程后,不能再启动应用了,报了如下的错:

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:741]

后来才发现任务管理器中有个java.exe的进程,这个进程就是jetty容器进程。手动杀掉这个进程后,才可以重新启动应用和debug功能。

网上有一些解决方法:

1. 设置hosts文件127.0.0.1与localhost的映射

2. 打开防火墙,让javaw.exe可以访问网络

3. 重启eclipse或者重启电脑

以上的几种方法都试过了,都不管用。

还是自己研究,经查,原来是很弱的原因:

关闭这个jetty的进程java.exe不是通过关闭jetty容器来实现的,而是用eclipse debug的客户端来关闭的。

解决方案:

在菜单栏Run–>Debug Configurations–>然后选择你的remote java application–>connect中有一个Allow termination of remote VM的复选框,勾上这个就行了。

然后启动了jetty容器后,再启动debug,此时就可以terminate debug来关闭jetty容器的进程了。(注意:不能直接在启动了jetty容器后,点Terminate来关闭jetty,这样不能关闭jetty,因为它是一个后台运行的java.exe进程在运行jetty容器,只能通过jpda的debug方式来远程关闭jetty容器,或者在任务管理器中干掉java.exe进程)

Eclipse Indigo中发生Unable to load default SVN client错误

可能大家在安装SVN的时候会出现“Unable to load default SVN client错误”,不要紧张,那是你机器上没有 JAVAHL 这个包, 这个是另外的一个开源组件。

最简单的解决办法:

其他解决方案:

官方参考:http://subclipse.tigris.org/wiki/JavaHL#head-7498d204a5be83e0e97d196ba75fc797d5f0c822