Fork me on GitHub

Eclipse初次java开发问题总结-1

项目需要,使用Eclipse初次java开发,过程中遇到很多问题,有的问题可能很低级,这里做个简单的总结,怕忘记:

1、Dyanamic Web Project工程引用普通java工程的类,可能会出现NoClassDefFoundError问题

如图一个简单的java工程和一个servlet示例程序,servlet中调用了Test工程中Test类的静态方法test():

很显然TestDW工程需要某种方式“引用”Test工程,刚开始开始我的方式是:右击TestDW(Dynamic Web Project)工程->选择Buid Path->Projects->添加Test工程:

这种方式我之前尝试了在普通java工程之间进行引用是没问题的,但是在Dynamic Web工程就会出现问题,虽然编译时候不会有错,但一运行就会报java.lang.NoClassDefFoundError的异常:

解决方式

右击TestDW(Dynamic Web Project)工程->选择Properties->Deployment Assembly->Add->Project->选择Test工程。

 

2、Server Runtime Environment 配置问题

需要在Eclipse中调试或运行Servlet程序需要新建Server,但是遇到了无法新建的问题,这是因为Server Runtime Environment没有配置的问题。

点击Window->Preferences->Server->Runtime Environment->Add->根据本机情况选择tomcat安装路径即可:

其实这个配置不对的话,也无法使用HttpServlet相关的类的。

 

3、文本编辑中文乱码问题:

右击工程->Properties->Text file encoding->Other->UTF-8。

 

4、智能提示

从VS切换到Eclipse还是非常的不习惯,最大的就是智能提示,Eclipse默认的设置对新手挺不方便,不过简单设置下还是很不错的:

Window->Properties->Java->Editor->Content Assist,将Auto activation delay设置短一点比如20毫秒,将Auto activation triggers for java从a-zA-Z和.都填上:

另外在使用的过程中慢慢发现的一些快捷键也很实用:

Ctrl+Shift+f 自动美化代码格式

Ctrl+Shift+O 自动导入需要的包/删除不多余引入的包等等。

说到Ctrl+Shift+f还有一个问题是这个热键跟搜狗输入法的“简繁体快捷键”热键冲突:

 

5、引用第三方类库的问题

可以在Buid Path中选择Add External JARs但这一引用的jar包使用的是绝对路径,项目拷到别人的电脑上可能就有问题,我现在使用的方式是在工程下建一个lib目录将需要用到的第三方jar包到放进去,然后在Buid Path中选择Add JARs添加工程目录下的jar包,这样使用的就是相对路径。

另外我发现好像Dynamic Web工程需要的第三方jar包需要放到WebContent Web-INF下的lib目录下。

 

6、找不到源码

调试或f3的时候提示找不到源码: 

很简单点击Attach Source 添加Jdk安装目录下的src.zip就可以了。

 

7、xstream序列化下划线问题

项目中使用xstream进行序列化操作,但使用过程中同事发现一个奇怪的问题,就是反序列化的某个字段中带有一个下划线的话(比如biz_result),但实际上返回的序列化结果为biz__result,多了一个下划线,解决这个问题如下使用xstream:

@SuppressWarnings("deprecation")
XmlFriendlyReplacer replacer = new XmlFriendlyReplacer("__", "_");
@SuppressWarnings("deprecation")
HierarchicalStreamDriver hierarchicalStreamDriver = new XppDriver(replacer);

XStream xStream = new XStream(hierarchicalStreamDriver);

 

更多xstream的用法参看官方文档:http://xstream.codehaus.org/alias-tutorial.html

 

8、代码同步的问题

开发中遇到另外一个头痛的问题就是代码同步的问题,因为之前一直在用SVN,用C#开发的工程代码同步比较简单,VS处理很多依赖关系,不需要我们操心。一开始我将整个java的workspace上传到SVN,然后其他同事check下来后各种问题,我猜测是因为我把一些工程相互之间依赖关系的文件也上传上去了(比如.classpath、.settings等,具体这些文件干什么的后面慢慢研究),最后没办法只能每次只提交java文件,但是这样文件一多,包层次一多就非常的头痛。VS里有SVN客户端插件,我想eclipse中肯定也有,结果网上一搜果然不出所料,就是subclipse

eclipse中以插件的形式安装subeclipse非常简单:

Help->Install New Software,直接输入subeclipse的下载地址安装就行了。

安装后就可以在Window->Preferences->Team中看到SVN的相关配置了:

如果之前workspace中的代码就是从SVN上check下来的话,那么右击工程->Team->Share Project->SVN->……后就可以在Team中看到相关的版本控制操作了:

工程Share后跟在VS中一样也有各种形状的图标表示不同的意思,比如黑底白色的星状代表代码没有同步到SVN上跟VS中的红色小方块一个意思:

 

 

8、split特殊字符的问题

1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");

posted @ 2013-06-11 23:25  zhanjindong  阅读(1740)  评论(0编辑  收藏  举报
TOP