博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eclipse Reference 功能之——项目之间的引用
阅读量:7240 次
发布时间:2019-06-29

本文共 1969 字,大约阅读时间需要 6 分钟。

i'm sorry, i forgot this article where i found. that it is referenced.

 

以前也研究过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,就可以在浏览器中立即看到修改后的效果。

==========================================

Sysdeo Eclipse Tomcat Launcher plugin 是做J2EE开发的时候经常用到的一款插件,可以在Eclipse中启动Tomcat,同时可以把Tomcat进程绑定到Eclipse Java Debugger中,这样可以在运行时进行一些debug操作,当修改或者新增、删除了一些java文件以后,Tomcat Context会自动重新load,这样不用每次做了修改都需要重启Tomcat。

在使用这款插件的时候,往往很多人会遇到这样的一个异常:ClassNotFoundException: org.apache.catalina.loader.DevLoader,很多人解决的办法往往是禁用DevLoader功能。其实DevLoader提供的功能是很有用的,它实现和扩展了WebappLoader。我们知道,默认情况下,我们需要把classes和jar文件都放到web应用所在的WEB-INF/classes和WEB-INF/lib下,但是在实际的开发环境下,往往需要引用到外部的classes和jar文件,比如另外一个项目中的classes,这个时候如果在没有DevLoader的情况下我们需要把这些classes和jar文件拷贝到web应用所在的WEB-INF下的相应目录中,而如果启用了DevLoader,则没有了上述的限制,可以加载项目用到的所有classpath中的classes和jar。

启用DevLoader的方法:

选中Activate DevLoader

选中需要加载的类库
在插件包中找到文件DevLoader.zip,解压缩到tomcat/server/classes下。

http://sam9901.iteye.com/blog/114746

转载地址:http://mwfbm.baihongyu.com/

你可能感兴趣的文章
cacti 添加
查看>>
maven中Rhino classes (js.jar) not found - Javascript disabled的处理
查看>>
LTS学习
查看>>
对SIGQUIT的实验 & Java dump
查看>>
软件架构分类(转载)
查看>>
SQL 关于apply的两种形式cross apply 和 outer apply, with cube 、with rollup 和 grouping
查看>>
1028. List Sorting (25)
查看>>
NIO框架之MINA源码解析(四):粘包与断包处理及编码与解码
查看>>
LINUX负载均衡LVS-DR搭建
查看>>
根据xlsx模板生成excel数据文件发送邮件代码
查看>>
Python基础教程 - Tdcqma
查看>>
Gulp安装及使用
查看>>
Nginx教程(五) Nginx配置文件详解
查看>>
一篇文章,带你明确什么是过拟合,欠拟合以及交叉验证
查看>>
【入门详解】MyBatis入门基础详解
查看>>
【转】keyCode对照表及JS监听组合按键
查看>>
网络设备Web登录检测工具device-phamer
查看>>
树莓派安装mono
查看>>
PHPCMS V9静态化HTML生成设置及URL规则优化
查看>>
linux磁盘管理系列二:软RAID的实现
查看>>