摘的别人的。

以前也研究过Eclipse里Web Project引用Java Project的问题,没有解决,特地再深入研究了一下。 


思路及实践如下: 


1.Elcipse里Project Properties里有Project Reference的设置,说明有这个特性,Java Builder Path里也有引用的Projects设置。 


试验:建立两个Java Project A、B,B引用A,设置B的Java Builder Path/Projects引用Project A,则B中的Class可以调用A中的Class,编译和运行都通过。 


说明Eclipse对Java Project的解决方案良好。 


(Project Reference的设置不知道有什么用处) 


2.Web应用,使用Eclipse WTP 


按上面的试验设置,(这里的B项目是一个Web项目),编译可以通过,但是运行时找不到A项目中的类。 


没有找到有相应的解决方案。 


3.Web应用,使用Sysdeo Tomcat Plugin 


发现有这个Window/Preferences/Tomcat/Advanced/Add Java Projects to Tomcat classpath设置,将Java项目设置到Tomcat的类路径中,对Tomcat是全局的,有一些不灵活,和其它的缺陷,比如加载这些类的ClassLoader将是SystemClassLoader而不是WebAppClassLoader,这将影响某些资源文件的加载。 


另外,我在Tomcat5.5.17上试验这个设置,结果启动Tomcat就出错。 



看了Sysdeo的文档,它介绍了DevLoader就专门解决这个问题的。看了一下他的源码,很简单,总共只有200行,基本上的逻辑是,读取Eclipse项目下的.#webclasspath、.classpath文件以获得引用的java类路径,由 


DevLoader加载这些项目外的类。 


具体操作是: 


1)设置Java Builder Path; 


2)将Sysdeo Plugin下的DevLoader.zip解压到Tomcat目录/server/classes下,在Tomcat Project/Project Properties/Tomcat/Devloader 中选中Active DevLoader,及选中列表中项目外的classpath。 


参考Sysdeo Plugin的ReadmeDevLoader.html. 



这样就解决了这个问题,效果是:修改了项目A、B中的代码,不用重起Tomcat,就可以在浏览器中立即看到修改后的效果。

以前也研究过Eclipse里Web Project引用Java Project的问题,没有解决,特地再深入研究了一下。 


思路及实践如下: 


1.Elcipse里Project Properties里有Project Reference的设置,说明有这个特性,Java Builder Path里也有引用的Projects设置。 


试验:建立两个Java Project A、B,B引用A,设置B的Java Builder Path/Projects引用Project A,则B中的Class可以调用A中的Class,编译和运行都通过。 


说明Eclipse对Java Project的解决方案良好。 


(Project Reference的设置不知道有什么用处) 


2.Web应用,使用Eclipse WTP 


按上面的试验设置,(这里的B项目是一个Web项目),编译可以通过,但是运行时找不到A项目中的类。 


没有找到有相应的解决方案。 


3.Web应用,使用Sysdeo Tomcat Plugin 


发现有这个Window/Preferences/Tomcat/Advanced/Add Java Projects to Tomcat classpath设置,将Java项目设置到Tomcat的类路径中,对Tomcat是全局的,有一些不灵活,和其它的缺陷,比如加载这些类的ClassLoader将是SystemClassLoader而不是WebAppClassLoader,这将影响某些资源文件的加载。 


另外,我在Tomcat5.5.17上试验这个设置,结果启动Tomcat就出错。 



看了Sysdeo的文档,它介绍了DevLoader就专门解决这个问题的。看了一下他的源码,很简单,总共只有200行,基本上的逻辑是,读取Eclipse项目下的.#webclasspath、.classpath文件以获得引用的java类路径,由 


DevLoader加载这些项目外的类。 


具体操作是: 


1)设置Java Builder Path; 


2)将Sysdeo Plugin下的DevLoader.zip解压到Tomcat目录/server/classes下,在Tomcat Project/Project Properties/Tomcat/Devloader 中选中Active DevLoader,及选中列表中项目外的classpath。 


参考Sysdeo Plugin的ReadmeDevLoader.html. 



这样就解决了这个问题,效果是:修改了项目A、B中的代码,不用重起Tomcat,就可以在浏览器中立即看到修改后的效果。

以前也研究过Eclipse里Web Project引用Java Project的问题,没有解决,特地再深入研究了一下。 


思路及实践如下: 


1.Elcipse里Project Properties里有Project Reference的设置,说明有这个特性,Java Builder Path里也有引用的Projects设置。 


试验:建立两个Java Project A、B,B引用A,设置B的Java Builder Path/Projects引用Project A,则B中的Class可以调用A中的Class,编译和运行都通过。 


说明Eclipse对Java Project的解决方案良好。 


(Project Reference的设置不知道有什么用处) 


2.Web应用,使用Eclipse WTP 


按上面的试验设置,(这里的B项目是一个Web项目),编译可以通过,但是运行时找不到A项目中的类。 


没有找到有相应的解决方案。 


3.Web应用,使用Sysdeo Tomcat Plugin 


发现有这个Window/Preferences/Tomcat/Advanced/Add Java Projects to Tomcat classpath设置,将Java项目设置到Tomcat的类路径中,对Tomcat是全局的,有一些不灵活,和其它的缺陷,比如加载这些类的ClassLoader将是SystemClassLoader而不是WebAppClassLoader,这将影响某些资源文件的加载。 


另外,我在Tomcat5.5.17上试验这个设置,结果启动Tomcat就出错。 



看了Sysdeo的文档,它介绍了DevLoader就专门解决这个问题的。看了一下他的源码,很简单,总共只有200行,基本上的逻辑是,读取Eclipse项目下的.#webclasspath、.classpath文件以获得引用的java类路径,由 


DevLoader加载这些项目外的类。 


具体操作是: 


1)设置Java Builder Path; 


2)将Sysdeo Plugin下的DevLoader.zip解压到Tomcat目录/server/classes下,在Tomcat Project/Project Properties/Tomcat/Devloader 中选中Active DevLoader,及选中列表中项目外的classpath。 


参考Sysdeo Plugin的ReadmeDevLoader.html. 



这样就解决了这个问题,效果是:修改了项目A、B中的代码,不用重起Tomcat,就可以在浏览器中立即看到修改后的效果。

以前也研究过Eclipse里Web Project引用Java Project的问题,没有解决,特地再深入研究了一下。   思路及实践如下: 


1.Elcipse里Project Properties里有Project Reference的设置,说明有这个特性,Java Builder Path里也有引用的Projects设置。 


试验:建立两个Java Project A、B,B引用A,设置B的Java Builder Path/Projects引用Project A,则B中的Class可以调用A中的Class,编译和运行都通过。 


说明Eclipse对Java Project的解决方案良好。 


(Project Reference的设置不知道有什么用处) 


2.Web应用,使用Eclipse WTP 


按上面的试验设置,(这里的B项目是一个Web项目),编译可以通过,但是运行时找不到A项目中的类。 


没有找到有相应的解决方案。 


3.Web应用,使用Sysdeo Tomcat Plugin 


发现有这个Window/Preferences/Tomcat/Advanced/Add Java Projects to Tomcat classpath设置,将Java项目设置到Tomcat的类路径中,对Tomcat是全局的,有一些不灵活,和其它的缺陷,比如加载这些类的ClassLoader将是SystemClassLoader而不是WebAppClassLoader,这将影响某些资源文件的加载。 


另外,我在Tomcat5.5.17上试验这个设置,结果启动Tomcat就出错。 



看了Sysdeo的文档,它介绍了DevLoader就专门解决这个问题的。看了一下他的源码,很简单,总共只有200行,基本上的逻辑是,读取Eclipse项目下的.#webclasspath、.classpath文件以获得引用的java类路径,由 


DevLoader加载这些项目外的类。 


具体操作是: 


1)设置Java Builder Path; 


2)将Sysdeo Plugin下的DevLoader.zip解压到Tomcat目录/server/classes下,在Tomcat Project/Project Properties/Tomcat/Devloader 中选中Active DevLoader,及选中列表中项目外的classpath。 


参考Sysdeo Plugin的ReadmeDevLoader.html. 



这样就解决了这个问题,效果是:修改了项目A、B中的代码,不用重起Tomcat,就可以在浏览器中立即看到修改后的效果。