Showing posts with label 编程技术. Show all posts
Showing posts with label 编程技术. Show all posts

Mar 29, 2011

.NET Reflector -- How to uninstall


Aha, this ie a tool listed as one of ten important tools of .NET programmers.

But... It's not free now. Do I need to use a crack version? Let's think about it. For now, I will just use the free version.

A quick note about how to uninstall .NET Reflector

There are 2 very simple ways to remove the .NET Reflector Pro add-in from Visual Studio. If you can either:

- Use the add-in manager functionality in Visual Studio by going to Tools > Add-in Manager and unchecking the .NET Reflector add-in

or

- Run .NET Reflector V6.x and go to Tools > Integration options and uncheck the Visual Studio integration

Mar 21, 2011

Can I finish this in one year? Good books for programmers

第一名:1333票《Code Complete (2nd Ed) by Steve McConnell》,中文版《代码大全(第二版)》,两届Software Jolt Award震撼大奖得主!

第二名:1181票 《The Pragmatic Programmer》,中文版《程序员修炼之道》

第三名:701票 《Structure and Interpretation of Computer Programs》,中文版《计算机程序的构造和解释》

第四名:572票 《The C Programming Language》,中文版《C程序设计语言》

第五名:481票 《Introduction to algorithms》,中文版《算法导论》

第六名:478票 《Refactoring: Improving the Design of Existing Code》,中文版《重构:改善既有代码的设计》

第七名:447票 《The Mythical Man-Month》,中文版《人月神话》

第八名:440票 《Design Patterns》,中文版《设计模式》

第九名:394票 《The Art of Computer Programming(First Volume Hardcover)》,中文版《计算机程序设计艺术第 (第一卷)》

第10名:364票 《Compilers: Principles, Techniques, and Tools 》,中文版《编译原理》

第11名:329票 《Head-First Design Patterns》,中文版《Head First 设计模式》

Nov 13, 2009

Visual Studio 2005 convert to 2008 error: The project is under source control

Today I solved a problem when I tried to covert visual studio 2005 project to visual studio 2008 project, I met a prolem "The project is under source control". My solution is:
1, make all the read only files to readable (uncheck the readonly checkbox)
2, open the *.csproj file with UltraEdit, and remove the four lines of tags which begin with "Scc"

...
...
...
...

No, it's OK now.

Jan 7, 2008

thrown: 'Dropdownlist1' has a SelectedValue which is invalid because it does not exist in the list of items.

Using GridView, I found .NET 2.0 is more efficient than .NET1.1
Expecially on GridView instead of DataGrid.

Recently, I found an error when I using a GridView which contains child control DropDownList. The DropDownList definition is:


Dec 26, 2007

Insert Table Using Trigger

insert 表
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;IMEX=1;HDR=YES;DATABASE=c:\test.xls' --c:\test.xls是excel文件名
,sheet1$) --sheet1$是工作表名+$

alter Trigger CheckandExist on temp_employee_info

for insert,delete,update

as

if not exists (select * from deleted)

if not exists (select * from employee_info where employee_info.CDSID=(select CDSID from inserted))

insert employee_info(CDSID,Name,Email) select CDSID,Name,Email from inserted
else

update employee_info
set
employee_info.Name=(select Name from inserted),
employee_info.Email=(select Email from inserted)


where
employee_info.CDSID=(select CDSID from inserted)

Oct 10, 2007

如何找到控件的父控件

Code Enough...

TabContainer myTabContainer=(TabContainer)this.Parent.Parent.FindControl("TabContainer1");
myTabContainer.ActiveTabIndex=4;
User Control Level
System.Web.UI.UserControl myASCX = new System.Web.UI.UserControl();
myASCX = (System.Web.UI.UserControl)this.Parent.FindControl("A1");
TextBox myTextBox;
myTextBox = (TextBox)myASCX.FindControl("TextBox1");

Sep 28, 2007

[转]安装.NET2.0后运行出现Failed to access IIS metabase错误解决办法.

笔者以前安装的是.NET1.1,后再在安装.NET 2.0后,无法再正常使用.出现

Failed to access IIS metabase

的错误,用自由微软的方法也无法解决.后来用以下办法成功解决问题:

1.在电脑管理里删掉ASPNET用户.

2.卸掉ASP.NET 2.0

3.卸掉IIS.

4.重装IIS,重装NET2.0

测试通过.

估计是ASPNET用户没有成功将权限分配给ASP.NET 2.0所至.但不明白为什么用微软的办法重新注册也解决不了,一定要重新安装.

感谢:denjackson

Sep 17, 2007

初试 Ajax

一直听说新技术,却一直赶不上新技术,这不,很久以前就知道的Ruby,这个在Code 兵器排行榜上一路飙升排名第三的语言,我到现在还没有学习。
以后一定要好好学习一下,今天在这里郑重承诺。
Ajax也是这样,我听说了很久Ajax是如何强悍,但是在我装了Ajax Control Tool 以后,就尝试了一下。首先,我用的是Tab功能。但是我发现我的Tab下面没有显示,被什么东西给挡住了。
我在想为什么呢?
我发现Tab的CSS没有效果,我觉得这是怎么了?
我反编译了那些软件,发现有一张图片显示不出来,试图重新添加,发现还是没有效果,难道微软的dll有错误,微软应该不会做这样的事情。

最后我怀疑是不是框架上面有问题,后来自己用了一个很简单的网页进行了测试,发现不是框架的问题。
最后,我只有一行一行的代码对照,终于发现了是这句话在起作用:

"
]]>"
那么这句话到底什么用呢?

我在网上找到了这个文章 http://www.purecss.cn/article.asp?id=318
感谢他的作者。

当我们制作页面的时候,总会在它的源码头部看到一串声明,

如果我们把这些代码去掉,会发现页面可能会有比较明显的变化,因为这样造成了有些样式的表现不一样。 这些代码我们称做DOCTYPE声明。DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。 其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。 要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。

怪不得啊,这些效果没有出来,原来是这样。呵呵,总算明白了。

Sep 7, 2007

如何在Access中创建两个字段的约束

要解决这个问题,首先要解决如何在Access中输入Sql的问题。

解决方法:先打开一个(或者新建)数据库。点queries,双击create query in design view关掉show table在上面灰色空白的地方点右键,Sql view就可以输入命令了.

然后就可以用Sql命令来解决了:

ALTER TABLE tblCustomers ADD CONSTRAINT CustomerNames UNIQUE ([Last Name], [First Name])

哈哈,解决了。

Jun 29, 2007

太多的感想,需要总结(一)

一直对于一些在程序中司空见惯的东西无动于衷,所以很麻木,但是今天终于明白了一些东西。
来源于CSDN上面的一个问题,
现在有一个聊天室,每个房间都有一个radiobutton而不是一个radiobuttonlist,他们都autopostback,每次postback时都要获取他的value,我可以为每个radiobuton写一段代码,这样可以获取value,但是可以就写一段吗,就像为很多个button指定不同的commandname一样,但是事件相同onclick="enter_click"
谢谢
zhangweisjz(啸傲沧海) ( ) 信誉:100 Blog 加为好友 2007-06-29 11:18:05 得分: 0


public void enter_click(Object sender, EventArgs e){
//在sender 上面做文章
string myName=((RadioButton)sender).Name.ToString();
if(myName=="张三"){
}
if(myName=="李四"){

}

}

哈哈,这是我的回答。能不能得分呢?我们拭目以待。

Jun 22, 2007

我所写过的最复杂的Sql 语句——合并记录,合并值

select distinct A.word, sum(A.count) as Count


from ( select WORD_B as Word,CO_LIT_COUNT as Count from WORD_RELATION_MATRIX
where WORD_A like '知识管理'
UNION all
select WORD_A,CO_LIT_COUNT from WORD_RELATION_MATRIX where WORD_B like '知识管理') A
group by A.word order by Count desc

Jun 14, 2007

Sql语言之沧海一滴,时间查询

似乎我最头疼的就是DateTime类型的数据了。一部分原因是由于DateTime数据存储的是
年月日和时分秒,所以处理起来麻烦,还有原因是由于这部分的函数和一些常用的处理方法不熟,一句话,不就是认生嘛。
今天遇到一个问题,Sql Server里面要判断某个日期相等。
即如何与一个DateTime类型的字段值进行相等比较?这其中有这样的问题:
1、一般来说,用户输入的日期值就是yyyy/mm/dd,不带时、分、秒;
2、数据库中存储的日期值是带时、分、秒的。

所以我必须假定:我们所谓的两个日期相等就是年、月、日相等。
这里有一个比较好的处理方法,


假定我们要查的日期是2004/7/10,则其实我们想要的就是这一天的00:00:00至23:59:59之间的。提到之间,我们就会想到between...and!!只要 between 2004/7/10 and 2004/7/11 即可了。具体地说:between Cast('2004-7-10' as DateTime) and dateadd(day, 1, Cast('2004-7-10' as DateTime))。但这个方法有一个小小问题,它会把7/11 0点的东西也找到,而这其实不应算做7/10的。如果你还想精益求精的话,就只能用...>=... and ...<... 了。(一般情况下没有必要)

Jun 2, 2007

dom4j 中文问题:java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.

几乎每一个编程的人都会遇到中文的问题,但偏偏你可能不知道问题是由于中文引起的,而往往从代码逻辑中寻找原因。也难怪,谁能想到我们伟大祖国的文字在八国联军以及小日本鬼子的开发工具里面就成了导致错误的罪魁祸首了呢?

在XML的开发中,我就遇到了类似的问题。
在Dom4J的API支持下,

Document document=null .........
XMLWriter output = new XMLWriter(new FileWriter(new File( "c:/test/Interest.xml")));
output.write(document);
然而在用SAX解析的时候却出现了这样的问题:
SAXReader saxReader = new SAXReader();
Document document=null;
document = saxReader.read(inputXml);
报错:java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.
查了半天代码,最后才发现:是UTF字符的问题。当XML中含有中文,而没有指定XML Encoding="UTF-8"的时候,就会产生这样的错误。(咬牙切齿,磨刀霍霍向鬼子)
修改方法:
OutputStream os=new FileOutputStream("c:/test/Interest.xml");
XMLWriter output=new XMLWriter(new OutputStreamWriter(os,"UTF-8"));
output.write(document);
总有一天,我们要用我们的冠绝天下的工具来折磨那些不重视我们中国语言的人。

Jun 1, 2007

关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解(转)

第一:首先介绍一下SAX,DOM,JAXP,JDOM,DOM4J的基本知识:(注意:至于 JAXP JAXB JAXM JAXR JAX-RPC 分别指什么,查看http://gceclub.sun.com.cn/staticcontent/html/xml/faq/#jaxr_)
1、sax、dom是两种对xml文档进行分析的方法(没有具体的实现,只有接口)所以不是解释器,如果光有他们,你是完成不了对xml文档的处理的。sax的包是org.xml.saxdom的包是org.w3c.dom包的名称很重要,它有助于你理解他们之间的关系。

2、jaxp是api,他封装了sax\dom两种接口。并在sax\dom的基础之上,作了一套比较简单的api以供开发人员使用。jaxp的包是javax.xml.parsers可以看看jaxp的源文件,它的文件中包含了对sax或者dom的引用(import)jaxp也不是具体的实现,他只是一套api。如果你仅仅有jaxp那是无法工作的(其实jaxp只是完成对sax、dom的包装,生成了DocumentBuilderFactory\DocumentBuilder和SAXParserFactory SAXParser。也就是设计模式中的工厂模式,他的好处就是具体的对象( 解释器)建立由子类完成)

3、xerces解释器(号称地球上最快的xml解释器)在xerces中对jaxp中定义的SAXParser SAXParserFactory DocumentBuilder DocumentBuilderFactory进行了继承(extends)对应SAXParserImpl SAXParserFactoryImpl DocumentBuilderImpl DocumentBuilderFactoryImpl这就是为什么你的classpath中只要有xerces.jar(其中包含了sax dom jaxp )和 xercesImpl.jar就可以的原因了.

4、什么时候可以用别的解释器 比如crimson呢他也是和xerces一样 是解释器,很简单,用crimson.jar 替代xercesImpl.jar

5、jdom和dom4j W3C的DOM标准API难用的让人想撞墙,于是有一帮人开发Java专用的XML API目的是为了便于使用,这就是jdom的由来,开发到一半的时候,另一部分人又分了出来,他们有自己的想法,于是他们就去开发dom4j,形成了今天这样两个API,至于他们之间的性能,jdom全面惨败,dom4j大获全胜。我觉得jdom和dom4j就相当于sax/dom+jaxp,具体的解释器可以选择。

第二:再介绍一下,dom,sax,jdom,dom4j的技术特点:
1: DOMDOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。
DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有几个优点。
首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像 SAX 那样是一次性的处理。DOM 使用起来也要简单得多。
  另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如 SAX。
2:SAX  
这种处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX 还比它的替代者 DOM 快许多。
3: 选择 DOM 还是选择 SAX ?
  对于需要自己编写代码来处理 XML 文档的开发人员来说,选择 DOM 还是 SAX 解析模型是一个非常重要的设计决策。
  DOM 采用建立树形结构的方式访问 XML 文档,而 SAX 采用的事件模型。
  DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。
  SAX 解析器采用了基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

4:jdom http://www.jdom.orgJDOM 的目的是成为 Java 特定文档模型,它简化与 XML 的交互并且比使用 DOM 实现更快。由于是第一个 Java 特定模型,JDOM 一直得到大力推广和促进。正在考虑通过“Java 规范请求 JSR-102”将它最终用作“Java 标准扩展”。从 2000 年初就已经开始了 JDOM 开发。
  JDOM 与 DOM 主要有两方面不同。首先,JDOM 仅使用具体类而不使用接口。这在某些方面简化了 API,但是也限制了灵活性。第二,API 大量使用了 Collections 类,简化了那些已经熟悉这些类的 Java 开发者的使用。
  JDOM 文档声明其目的是“使用 20%(或更少)的精力解决 80%(或更多)Java/XML 问题”(根据学习曲线假定为 20%)。JDOM 对于大多数 Java/XML 应用程序来说当然是有用的,并且大多数开发者发现 API 比 DOM 容易理解得多。JDOM 还包括对程序行为的相当广泛检查以防止用户做任何在 XML 中无意义的事。然而,它仍需要您充分理解 XML 以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习 DOM 或 JDOM 接口都更有意义的工作。  JDOM 自身不包含解析器。它通常使用 SAX2 解析器来解析和验证输入 XML 文档(尽管它还可以将以前构造的 DOM 表示作为输入)。它包含一些转换器以将 JDOM 表示输出成 SAX2 事件流、DOM 模型或 XML 文本文档。JDOM 是在 Apache 许可证变体下发布的开放源码。

5: DOM4J http://dom4j.sourceforge.net/ 虽然 DOM4J 代表了完全独立的开发结果,但最初,它是 JDOM 的一种智能分支。它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过 DOM4J API 和标准 DOM 接口具有并行访问功能。从 2000 下半年开始,它就一直处于开发之中。  为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了 API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
  在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。  DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。

最后:我建议用dom4j
 JDOM 和 DOM 在性能测试时表现不佳,在测试 10M 文档时内存溢出。在小文档情况下还值得考虑使用 DOM 和 JDOM。虽然 JDOM 的开发者已经说明他们期望在正式发行版前专注性能问题,但是从性能观点来看,它确实没有值得推荐之处。另外,DOM 仍是一个非常好的选择。DOM 实现广泛应用于多种编程语言。它还是许多其它与 XML 相关的标准的基础,因为它正式获得 W3C 推荐(与基于非标准的 Java 模型相对),所以在某些类型的项目中可能也需要它(如在 javascript 中使用 DOM)。  SAX表现较好,这要依赖于它特定的解析方式。一个 SAX 检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。  无疑,DOM4J是最好的,目前许多开源项目中大量采用 DOM4J,例如大名鼎鼎的 Hibernate 也用 DOM4J 来读取 XML 配置文件。如果不考虑可移植性,那就采用DOM4J吧!

May 31, 2007

小小的发现,SWT-Designer

当我们重装系统的时候,往往发现,SWT-Designer又需要激活了。
对于SWT-Designer真是又爱又恨,爱是因为做的实在是棒,恨却是因为价钱很高,看了一下,一年200$,难怪D者众多,居然和Windows一个价,民非欲反,为官所逼耳!
言归正传,激活的key工具很多,网上很容易就找到。
现在的问题在于,如果已经激活了一次,SWT-Designer的激活license保存一份拷贝,下次把license放在同一路径就可以了。
license Name: Instantiations.license
Path: C:\Documents and Settings\YourName\

May 30, 2007

dom4j

XML是一个好东西,一个几乎可以说刚进大学的时候就耳熟能详的东西,然而直到临近毕业,才开始动手做与XML相关的东西,不觉唏嘘感慨,年华虚度,空负岁月。

首先,那么多的名词就让我头昏眼花,报一报我脑袋里刚装下的名词吧。

XML, XSLT, XPath, XQuery,Dom4J,Xerce! 还有很多很多。

我一时没有理解,反正DOM和SAX一个内存吃的凶,一个吃的少。Dom4J提供了很多的API给你,然后可以和其他的很好的兼容,我就采用了dom4j。

按照IBM的教程写了一个Write XML的类,写了一个Modify XML的类,然而ModifyXML的时候,老是报错,这个错误我看也看不懂,找也找不到:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
在我调试程序若干次无疾而终的时候,我想到把这个错误放到google中搜索看看,结果发现:
原来是有一个包没有导入,但是Eclipse没有提示缺少包——需要吗?不需要吗?你不说我怎么知道呢?
原来dom4j除了dom4j.jar外,还需要导入:jaxen-1.1-beta-6.jar
终于解除了问题。

May 28, 2007

Sql Server 字符型 转换为 DateTime型

也许是字符型是容错性最好的数据类型,在转换是,如果遇到问题,一般都可以将其转换为字符型再做进一步的处理。
下面的问题是:
如何将字符型(NVarChar)的转换为DateTime型,
完全命令的方式我还没有找到,但是手工有一个好方法:
首先,找出不合格的数据:
select * from 表名 where isdate(列名)=0
你可以手动删除或者,delete from 表名 where isdate(列名)=0
其次,将空格变为null
update 表名 set 列名=null where 列名=''
然后,改为DateTime类型即可。

May 10, 2007

编辑的时候动态绑定DropDownList内容




This is a trick. Just write it here for external memory.


The condition is this:


In a datagrid, if there is a value, and the value is gained from database;


so when you modify, the value select become a dropdownlist, how can


And if the dropdownlist is gained from database, and when you modify, you have a exitex value, how can the dropdownlist select the existed value as default?




The code is as this:






' visible="false">












string TM=((Label)e.Item.FindControl("lblHideTM")).Text;


for(int i=0;i

ddlTrainingMethod.SelectedIndex=i;


if(ddlTrainingMethod.SelectedItem.Text==TM){


return;


}


}


Apr 29, 2007

代码重用,全局变量

灵活是一个好程序的必要条件。灵活多变的程序中比一成不变的代码要显得有生气的多。
比如,在判断条件的时候,我们选择所有的中国人。
if(country=="中国"){
......
}
但如果,程序在英语环境中使用,势必要变成if(country="Chinese"){}
那岂不是要改动源代码,诸如此类的东西东一块,西一块,那就要头痛不已了。

正是如此,催生了代码重用的产生。

在ASP.NET中,有两种方法来实现代码重用和全局变量。
一种办法:
在项目根目录下面新建一个名为“App_Code”的文件夹,(网站运行时系统会自动编译这个App_Code文件夹里面的代码)。然后建立一个类,例如“SystemDefine.cs”
在其中写一个通用函数
public class SystemDefine{
public const string TEST="Hellooooo";

public const string COUNTRY="中国";
public const string COUNTRY_EN="Chinese";

}
在其他也使用中可以这样:
需要用“中国”判断的时候
if(country=SystemDefine.COUNTRY){

}

第二种办法:
讲代码放在一个文件中例如 pubfunc.cs
然后在具体使用中,用

路径根据具体情况设置。

Apr 27, 2007

eclipse"Activation.main: 警告"的解决办法

Activation.main: 警告: sun.rmi.activation.execPolicy 系统属性未被指定且 ExecPermissions/ExecOptionPermissions均未被授权。随后的激活尝试失败,原因是对ExecPermission/ExecOptionPermission 的权限检查失败。 有关如何配置 rmid 安全性的文档说明,请参阅:
http://java.sun.com/javase/6/docs/technotes/tools/solaris/rmid.html
http://java.sun.com/javase/6/docs/tooldocs/win32/rmid.html

English Version
The error may coursed by you right click the whole project and chosed "run as". After this, a dialog comes out that "Select java application";the defalt value is "**", but at last the project autoselected Activation-sun.rmi.server. So come out the error.
The solution is directly run the application file , or just restart Eclipse.

报这个错误可能是因为你对最外面的大的项目点右键run as运行为了,所以跳出来一个SELECT JAVA APPLICATION的选框,默认的是**,而最后它用的是第一个选项Activation-sun.rmi.server,因此会报错。
这时在maching types选择运行的项目名即可正常运行,或者点项目中的函数名,再run as如运行hello world,则需对HelloWorld.java下的HelloWorld下的main点右键再选run as。
简单的办法就是,关掉Eclipse重启,这个问题就没有了。