06月 2006


JAVA10 Jun 2006 04:32 pm

基础知识:1.C++Java中的异常处理机制的简单原理和应用。

  当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。

  2. Java的接口和C++的虚类的相同和不同处。

  由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。

  3. 垃圾回收的优点和原理。并考虑2种回收机制。

  Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

  4. 请说出你所知道的线程同步的方法。

  wait():使一个线程处于等待状态,并且释放所持有的对象的lock.

  sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

  notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

  Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

  5. 请讲一讲析构函数和虚函数的用法和作用。

  6. ErrorException有什么区别?

  Error表示系统级的错误和程序不必处理的异常,

  Exception表示需要捕捉或者需要程序进行处理的异常。

  7. java中一个类被声明为final类型,表示了什么意思?

  表示该类不能被继承,是顶级类。

  8. 描述一下你最常用的编程风格。

  9. heapstack有什么区别。

  栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。

  堆是栈的一个组成元素

  10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。

  public class BigInt()

  {

  int[] ArrOne = new ArrOne[1000]

  String intString=""

  public int[] ArrString s

  {

  intString = s

  forint i=0i {

  11. 如果要设计一个图形系统,请你设计基本的图形元件(PointLineRectangleTriangle)的简单实现

  12,谈谈final finally finalize的区别。

  final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

  finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

  finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

  13Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

  匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

  14Static Nested Class Inner Class的不同,说得越多越好(面试题有的很笼统)。

  Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http //www.frontfree.net/articles/services/view.ASPid=704&page=1

  注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

  第四,&&&的区别。

  &是位运算符。&&是布尔逻辑运算符。

  15HashMapHashtable的区别。

  都属于Map接口的类,实现了将惟一键映射到特定的值上。

  HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。

  Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

  16Collection Collections的区别。

  Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

  Collection是个java.util下的接口,它是各种集合结构的父接口。

  17,什么时候用assert.

  断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true.如果表达式计算为 false,那么系统会报告一个 Assertionerror.它用于调试目的:

  asserta > 0); // throws an Assertionerror if a <= 0

  断言可以有两种形式:

  assert Expression1

  assert Expression1 Expression2

  Expression1 应该总是产生一个布尔值。

  Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。

  断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:

  javac -source 1.4 Test.java

  要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。

  要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。

  要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。

  可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。

  18GC是什么? 为什么要有GC (基础)。

  GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

  System.gc()

  Runtime.getRuntime()。gc()

  19String s = new String"xyz");创建了几个String Object

  两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s.

  20Math.round11.5)等於多少? Math.round-11.5)等於多少?

  Math.round11.5)返回(long12Math.round-11.5)返回(long-11

  21short s1 = 1 s1 = s1 + 1;有什么错? short s1 = 1 s1 += 1;有什么错?

  short s1 = 1 s1 = s1 + 1;有错,s1short型,s1+1int型,不能显式转化为short型。可修改为s1 =short)(s1 + 1 .short s1 = 1 s1 += 1正确。

  22sleep() wait() 有什么区别? 搞线程的最爱

  sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 b)正在运行的线程因为其它原因而阻塞。

  wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

  23Java有没有goto

  Gotojava中的保留字,现在没有在java中使用。

  24,数组有没有length()这个方法? String有没有length()这个方法?

  数组没有length()这个方法,有length的属性。

  String有有length()这个方法。

  25OverloadOverride的区别。Overloaded的方法是否可以改变返回值的类型?

  方法的重写Overriding和重载OverloadingJava多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

  26Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

  Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

  equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

 

体育10 Jun 2006 01:35 pm

德国:库兰伊意外旁观 莱曼春风得意

门将:12-卡恩(拜仁)1-莱曼(阿森纳)23-希尔德布兰(斯图加特)

后卫:3-A-弗里德里希(赫塔)4-胡特(切尔西)2-简森(门兴)16-拉姆(拜仁)17-默特萨克(汉诺威)21-梅策尔德(多特蒙德)6-诺沃特尼(勒沃库森)

前卫:5-凯尔(多特蒙德)13-巴拉克(拜仁)7-施魏因施泰格(拜仁)18-博罗夫斯基(不来梅)8-弗林斯(不来梅)19-施奈德(勒沃库森)15-希策尔斯佩格()

前锋:14-阿萨莫阿(沙尔克)10-诺伊维尔(勒沃库森)11-克洛斯(不来梅)20-波多尔斯基(科隆)9-汉克(沃尔夫斯堡)20-奥东科(多特蒙德)

此外,克林斯曼还宣布了6名替补球员,如果这23人出现了伤病等意外情况,将有这5人中选出替代者。

恩克(汉诺威96)

M-弗雷德里希(美因茨)

奥沃莫耶拉(不来梅)

恩斯特(沙尔克)

弗莱尔(勒沃库森)

库兰伊(沙尔克)

哥斯达黎加:“眼镜蛇”完成“绝唱”救火队长气势逼人

守门员:

阿尔瓦罗-梅森(埃雷迪亚人),何塞-弗朗西斯科-波拉斯(萨普里萨),瓦尔迪-阿尔法罗(阿拉胡埃拉人)

后卫:

莱昂纳多-冈萨雷斯(埃雷迪亚人),米歇尔-乌马纳(布鲁哈斯),杰维斯-德鲁蒙德(萨普里萨),加布里埃尔-巴迪拉(萨普里萨),路易斯-马林(阿拉胡埃拉人),米歇尔-罗德里格斯(阿拉胡埃拉人),吉尔伯托-马丁内斯-维达尔(布雷西亚),道格拉斯-塞奎拉(皇家盐湖城),哈罗德-华莱士(阿拉胡埃拉人)

中场:

达尼埃尔-丰塞卡(布鲁哈斯),兰达尔-阿索菲法(萨普里萨),瓦尔特-森特诺(萨普里萨),克里斯蒂安-博拉诺斯(萨普里萨),卡洛斯-埃尔南德斯(阿拉胡埃拉人),库尔特-博纳德(彭塔雷纳斯),毛利西奥-索利斯(危地马拉通讯)

前锋:

罗纳德-戈麦斯(萨普里萨),阿尔瓦罗-萨博里奥(萨普里萨),保罗-万乔普(-埃奎波),维克托-努涅斯(阿拉胡埃拉人)

世界杯32强之哥斯达黎加队:期盼重塑辉煌

哥斯达黎加队:“救火队长”吉马良斯名副其实

“眼镜蛇”万乔普将在德国世界杯完成“绝唱”

波兰:杜德克意外落选 剑指德国意欲创奇迹

守门员:

博鲁什(凯尔特人),库沙克(西布朗维奇),法比安斯基(华沙列加)

后卫:

亚采克-巴克(卡塔尔阿尔-拉扬),马里乌斯-约普(莫斯科中央陆军),祖拉科夫(安德莱赫特),巴钦斯基(维斯拉克拉科夫),甘卡尔齐克(查科夫冶金),勒万多夫斯基(顿涅茨克矿工),杜德卡(维斯拉克拉科夫)

中场:

克尔兹诺维克(勒沃库森),希姆科维雅克(特拉布宗体育),索博勒夫斯基(维斯拉克拉科夫),斯莫拉雷克(多特蒙德),科索夫斯基(南安普顿),拉冬斯基(维也纳),塞巴斯蒂安-米拉(维也纳),戈洛夫斯基(莫斯科中央陆军),皮奥特尔-吉萨(罗马尼亚克拉奥华大学)

前锋:

茹拉夫斯基(凯尔特人),拉西亚克(南安普顿),布罗泽克(维斯拉克拉科夫),耶伦(维斯拉普洛克)


厄瓜多尔:德拉克鲁斯镇守后方 德国之夏决不空手而归

守门员:

比利亚富埃特(基多体育)、莫拉(LDU基多)、兰扎(奥卡斯)

后卫:

伊万-乌尔塔多(阿拉比,卡塔尔)、埃斯皮诺萨(LDU基多)、德拉克鲁斯( 阿斯顿维拉)、安布罗西(LDU基多)、雷阿斯科(LDU基多)、瓜瓜(国民)、佩尔拉萨(奥尔梅多)

中场:

阿约维(基多体育)、特诺里奥(巴塞罗那,厄瓜多尔)、门德斯(LDU基多)、乌鲁蒂亚(LDU基多)、拉拉(国民)、卡斯蒂略(国民)、瓦伦西亚(乌尔瓦)、萨里塔马(基多体育)

前锋:

贝尼特斯(国民)、博尔哈(国民)、卡洛斯-特诺里奥(萨德,卡塔尔)、德尔加多(LDU基多)、卡维德斯(阿根廷青年人)


B


英格兰:枪手小将初生牛犊 中场两德所向无阻

守门员:罗宾逊(托特纳姆热刺)、詹姆斯(曼城)、格林(诺维奇)

后卫:加里-内维尔(曼联)、费迪南德(曼联)、特里(切尔西)、阿什利-科尔(阿森纳)、布里奇(切尔西)、坎贝尔(阿森纳)、卡拉格(利物浦)

前卫:唐宁(米德尔斯堡)、贝克汉姆(皇家马德里)、兰帕德(切尔西)、杰拉德(利物浦)、乔-科尔(切尔西)、卡里克(托特纳姆热刺)、哈格里维斯(拜仁慕尼黑)、杰纳斯(纽卡斯尔联队)、列农(托特纳姆热刺)

前锋:鲁尼(曼联)、欧文(纽卡斯尔联队)、克劳奇(利物浦)、沃尔科特(阿森纳)

巴拉圭:甲A故人领衔锋线 拜仁骁将莱茵出剑

守门员:

胡斯托-维拉尔(纽维尔老男孩),阿尔多-博巴迪拉(自由),德尔里斯-戈麦斯(卢克诺竞技)

后卫:

德尼斯-卡尼萨(暂无球队),卡洛斯-加马拉(帕尔梅拉斯),胡里奥-塞萨尔-卡塞雷斯(河床),德里奥-托雷多(皇家萨拉戈萨),保罗-达席尔瓦(托鲁卡),胡里奥-塞萨尔-曼苏尔(瓜拉尼),若热-努涅斯(大学生)

中场:

埃德加-巴勒托(奈梅亨),罗伯托-阿库纳(拉科鲁尼亚),卡洛斯-翁贝尔托-帕雷德斯(雷吉纳),胡里奥-多斯-桑托斯(拜仁慕尼黑),克里斯蒂安(自由),博内特(自由),何塞-蒙蒂尔(奥林匹亚),加维兰(纽维尔老男孩)

前锋:

罗克-圣克鲁斯(拜仁慕尼黑),内尔森-埃多-巴尔德斯(不来梅),何塞-萨图尔尼诺-卡多佐(暂无球队),萨尔瓦多-卡巴纳斯(墨西哥美洲虎),内尔森-奎瓦斯(帕丘卡)

特立尼达和多巴哥队:首次出征世界杯 神秘之师欲何为

守门员:凯尔文-杰克(邓迪),沙卡-希斯洛普(西汉姆),克莱顿-因斯(考文垂)

后卫:丹尼斯-劳伦斯(莱克斯汉姆),希德-格雷(圣胡安雅布罗特金融),马尔文-安德鲁斯(格拉斯哥流浪),布伦特-桑乔(吉林汉姆),伊恩-考克斯(吉林汉姆),阿提巴-查理斯(克耐克森),阿弗里-约翰(新英格兰革命)

中场:希尔维奥-斯潘(自由球员),克里斯-比尔乔(韦尔港),奥迪斯-怀特利(圣胡安雅布罗特金融),安托尼-沃尔夫(圣胡安雅布罗特金融),丹希尔-瑟巴尔德(法尔科克),卡洛斯-爱德华兹(卢顿)

前锋:德怀特-约克(悉尼联队),鲁塞尔-拉帕蒂(法尔科克),斯特恩-约翰(考文垂),肯维尼-琼斯(南安普顿),科林-萨穆埃尔(邓迪联队),贾森-斯科特兰德(约翰斯通),科内尔-格伦(洛杉矶银河)

待定:埃文斯-怀斯(曼海姆)

2006世界杯群雄崛起之特立尼达和多巴哥队

瑞典:拉尔森引人关注 永贝里宝刀不老

门将:

伊萨克森(雷恩)、阿尔夫巴格(维尔堡)、沙班(弗雷德里克斯塔德)

后卫:

埃德曼(雷恩)、彼得-汉森(海伦芬)、卢西奇(哈肯)、梅尔贝里(阿斯顿维拉)、斯文森(哥德堡)、尼尔森(帕纳辛奈科斯)、斯滕曼(勒沃库森)

中场:

丹尼尔-安德森(马尔默)、亚历山德森(哥德堡)、卡尔斯特罗姆(雷恩)、林德罗特(哥本哈根)、威廉森(安德莱赫特)、安德斯-斯文森(埃尔夫斯堡)、永贝里(阿森纳)

前锋:

阿尔巴克(哥本哈根)、埃尔曼德(布隆德比)、伊布拉希莫维奇(尤文图斯)、荣森(尤尔加登)、拉尔森(巴塞罗那)、罗森贝里(阿贾克斯)

C


阿根廷:梅西小鬼当家 里克尔梅王者归来
守门员:

阿邦丹谢利(博卡青年),莱奥-弗兰科(马德里竞技),乌斯塔里(独立)

后卫:

科洛奇尼(拉科鲁尼亚),阿亚拉(瓦伦西亚),海因策(曼联),索林(比利亚雷亚尔),加布里埃尔-米利托(皇家萨拉戈萨),布尔迪索(国际米兰),库弗雷(罗马)

中场:

斯卡罗尼(西汉姆联队),坎比亚索(国际米兰),马斯切拉诺(科林西安),路易斯-冈萨雷斯(波尔图),艾马尔(瓦伦西亚),里克尔梅(比利亚雷亚尔),马克西-罗德里格斯(马德里竞技)

前锋:

特维斯(科林西安),克雷斯波(切尔西),梅西(巴塞罗那),帕拉西奥(博卡青年),萨维奥拉(塞维利亚),克鲁斯(国际米兰)

科特迪瓦:切尔西杀手令人生畏 枪手防线难以逾越

门将:蒂齐耶(突尼斯希望)、科帕(比利时贝夫伦)、尼亚诺安(蒙彼利埃)

后卫:多莫劳(克里特尔)、库阿西(特鲁瓦)、梅特(马赛)、博卡(斯特拉斯堡)、图雷(阿森纳)、埃布(阿森纳)、佐罗(梅西纳)

前卫:佐科拉(圣埃蒂安)、费(南特)、阿卡勒(欧塞尔)、卡菲(勒芒)、亚亚-图雷(奥林匹亚科斯)、亚皮-亚波(瑞士年轻人)、德梅尔(汉堡)

前锋:B-科内(尼斯)、德罗巴(切尔西)A-科内(埃因霍温)、卡劳(巴黎圣日尔曼)、凯塔(里尔)、丁达尼(朗斯)

塞黑:意甲国米中场调度 西甲锋线尖刀出击

守门员:耶夫里奇(安卡拉体育)O-科瓦切维奇(索非亚CSKA)V-斯托伊科维奇(南特)

后卫:加夫兰西奇(基辅迪纳摩),德拉古蒂诺维奇(塞维利亚),克尔斯塔季奇(沙尔克04),维迪奇(曼联),杜迪奇(贝尔格莱德红星)N-德约杰维奇(贝尔格莱德游击队),巴斯塔(贝尔格莱德红星)

前卫:斯坦科维奇(国米),杜利亚伊(顿涅茨克矿工)P-德约杰维奇(奥林匹亚克斯),科罗曼(朴茨茅斯),纳吉(贝尔格莱德游击队),伊利奇(加拉塔萨莱),武基奇(贝尔格莱德游击队),厄尔吉奇(巴塞尔)

前锋:米洛舍维奇(奥萨苏纳),凯日曼(马竞),日吉奇(贝尔格莱德红星),柳博亚(斯图加特),武齐尼奇(莱切)

荷兰:明星璀璨 冲出死亡之组笑傲江湖

守门员:范德萨(曼联)、斯特克伦博格(阿贾克斯)、蒂莫尔(阿尔克马尔)

后卫:贾里恩斯(阿尔克马尔)、克隆坎普(利物浦)、奥耶尔(埃因霍温)、约翰-海廷加(阿贾克斯)、保拉赫鲁兹(汉堡)、马西森(阿尔克马尔)、范布隆克霍斯特(巴塞罗那)、德克勒(阿尔克马尔)

前卫:范伯梅尔(巴塞罗那)、科库(埃因霍温)、兰德扎特(阿尔克马尔)、马杜罗(阿贾克斯)、范德法特(汉堡)、斯耐德(阿贾克斯)

前锋:范尼斯特鲁伊(曼联)、范佩西(阿森纳)、罗本(切尔西)、库伊特(费耶诺德)、海塞林科(埃因霍温)、巴贝尔(阿贾克斯) 

D


墨西哥:巴萨马克斯当关 “黄色潜水艇”弗朗哥冲锋

守门员:

桑切斯(瓜达拉哈拉)、奥楚亚(美洲)、科罗纳(特科斯UAG)

后卫:

卡斯特罗(美洲)、马克斯(巴塞罗那)、门德斯(蒙特雷)、奥索里奥(蓝十字)、罗德里格斯(瓜达拉哈拉)、萨尔西多(瓜达拉哈拉)、苏亚雷斯(奇瓦斯USA)、瓜儿达多(阿特拉斯)、皮内达(瓜拉拉哈拉)

中场:

佩雷斯(蒙特雷)、帕尔多(美洲)、内尔森(托卢卡)、加西亚(阿特拉斯)、托拉多(蓝十字)、莫拉雷斯(瓜达拉哈拉)

前锋:

博尔格蒂(博尔顿)、弗朗哥(比利亚雷亚尔)、丰塞卡(蓝十字)、布拉沃(瓜达拉哈拉)、阿雷利亚诺(蒙特雷)

 

诸强公布世界杯名单


伊朗:代伊宝刀未老 德甲四雄来势凶猛

守门员:

米尔扎普尔(弗拉德),塔勒布鲁(埃斯特格拉尔),路德巴里安(帕斯)

后卫:

戈尔莫罕马迪(沙巴电池),诺斯拉蒂(帕斯),雷扎伊(梅西纳),扎雷(巴格),卡阿比(弗拉德),巴克蒂亚里扎德赫(沙巴电池),萨德奇(埃斯特格拉尔)

中场:

内科南(阿联酋沙迦),特伊穆里安(科拉桑),马达维基亚(汉堡),赞迪(凯泽斯劳滕),卡里米(拜仁慕尼黑),马丹奇(波斯波利斯),卡泽米安(波斯波利斯)

前锋:

阿里-代伊(沙巴电池),哈什米安(汉诺威96),埃纳亚蒂(埃斯特格拉尔),博尔哈尼(帕斯),舍贾伊(塞帕),卡提比(塞帕汉)

安哥拉:本菲卡前锋当家 豪情出征失业球员无所畏惧

门将:里卡多(无球队),拉马(卢安达竞技),马里托(国际俱乐部)

后卫:德尔加多(卢安达竞技),姜巴(卢安达铁路),卡利(葡萄牙巴雷伦斯),莱博(卢安达竞技),洛科(卢安达8),阿布鲁(葡萄牙波迪蒙尼斯),埃罗萨(葡萄牙巴雷伦斯),鲁伊-马奎斯(英格兰胡尔城)

前卫:安德烈(科威特竞技),埃德森(葡萄牙费雷拉),菲格雷多(葡萄牙瓦兹姆),门东卡(葡萄牙瓦兹姆),米罗伊(国际俱乐部),卡兰加(卢安达竞技)

前锋:阿夸(无球队),布恩戈(法国克莱蒙特),弗拉维奥(埃及阿尔阿赫利),洛夫(卢安达铁路),曼托拉斯(本菲卡),马图斯(葡萄牙基维森特)

葡萄牙:国米菲戈压阵 巴萨“心脏”坐镇

守门员:

里卡多-佩雷拉(里斯本竞技),奎姆(本菲卡),布鲁诺-瓦莱(阿玛多拉)

后卫:

保罗-费雷拉(切尔西),米格尔-蒙泰罗(瓦伦西亚),卡瓦略(切尔西),梅拉(斯图加特),卡内拉(里斯本竞技),里卡多-科斯塔(波尔图),努诺-瓦伦特(埃弗顿)

中场:

佩蒂(本菲卡),科斯蒂尼亚(莫斯科迪纳摩),迪亚戈(里昂),马尼切(切尔西),维亚纳(瓦伦西亚),菲戈(国际米兰),德科(巴塞罗那),克里斯蒂亚诺-罗纳尔多(曼联),西芒(本菲卡)

前锋:

博阿-莫特(富勒姆),保莱塔(巴黎圣日尔曼),努诺-戈麦斯(本菲卡),波斯蒂加(圣埃蒂安)

E


意大利:昔日金童皮耶罗归来 当代王子托蒂上阵

守门员:布冯(尤文图斯)、佩鲁济(拉齐奥)、阿梅利亚(利沃诺)

后卫:奥多(拉齐奥)、扎卡多(巴勒莫)、马特拉齐(国际米兰)、巴扎里(利沃诺)、内斯塔(AC米兰)、卡纳瓦罗(尤文图斯)、赞布罗塔(尤文图斯)、格罗索(巴勒莫)

中场:卡莫拉内西(尤文图斯)、加图索(AC米兰)、皮尔洛(AC米兰)、佩罗塔(罗马)、德罗西(罗马)、巴罗内(巴勒莫)、托蒂(罗马)

前锋:托尼(佛罗伦萨)、吉拉迪诺(AC米兰)、因扎吉(AC米兰)、皮耶罗(尤文图斯)、亚昆塔(乌迪内斯)

加纳:埃辛引领众星 传奇非洲陌生之队

门将:S.阿杰伊(阿什多德MS,以色列)、理查德金斯顿(安卡拉体育,土耳其)、奥乌(阿山提金矿)

后卫:帕波(阿什多德-特拉维夫,以色列)、潘特希尔(哈波尔-特拉维夫、以色列)、门萨(雷恩,法国)、伊萨(兰德斯,丹麦)、库福尔(罗马,意大利)、萨尔佩(沃尔夫斯堡,德国)、夸耶(阿克拉橡树之心)、哈比比-莫哈梅德(法希尔国王)、伊利阿苏(库玛斯)

中场:阿皮亚(费内巴赫,土耳其)、埃辛(切尔西、英格兰)、蒙塔里(乌迪内斯,意大利)、德拉马尼(贝尔格莱德红星,塞黑)、埃里克-阿多(埃因霍温,荷兰)、德瑞克-博阿腾(AIK索尔纳,瑞典)、奥托-阿多(美茵茨,德国)

前锋:吉安(摩德纳,意大利)、阿莫亚(多特蒙德,德国)、弗林篷(哥本哈根,丹麦)、德奇-门萨(圣加仑,瑞士)

替补:门将:菲利蒙-麦卡锡(费耶诺德)、前锋:安萨(库马西阿桑特)、尤斯夫-奇萨赫(库玛斯)、前锋:巴弗尔-吉安(莫斯科迪纳摩,俄罗斯)、中场:巴巴-阿马杜(索维特夫,俄罗斯)

美国:海杜克受伤遗憾别离 主教练临行改名单

守门员:凯勒(门兴格拉德巴赫)、哈内曼(雷丁)、霍华德(曼联)

后卫:波卡尼格拉(富勒姆)、切伦多洛(汉诺威96)、康拉德(堪萨斯巫师)、吉布斯(ADO海牙)、奥尔布莱特(洛杉矶银河)、刘易斯(利兹联队)、恩耶武(标准列日)、波普(盐湖城)

前卫:比斯利(埃因霍温)、科维(雷丁)、邓普西(新英格兰革命)、多诺万(洛杉矶银河)、马斯特诺尼(科罗拉多快速)、奥布莱恩(美国芝华士)、奥尔森(华盛顿联队)、雷纳(曼城)

前锋:程(休斯顿蓝马)、约翰逊(堪萨斯巫师)、麦克布莱德(富勒姆)、沃尔夫(堪萨斯巫师)

捷克:英超“龙门”意甲“腰” 法甲中场德甲

守门员:切赫(切尔西)、布拉热克(布拉格斯巴达)、金斯基(俄超土星)

后卫:格里格拉(阿贾克斯)、杨库洛夫斯基(AC米兰)、伊拉内克(莫斯科斯巴达)、科瓦奇(莫斯科斯巴达)、马雷什(生彼得堡泽尼特)、罗泽纳尔(巴黎圣日尔曼)、乌伊法鲁西(佛罗伦萨)

前卫:加拉塞克(阿贾克斯)、波博斯基(布约维奇)、亚罗利姆(汉堡)、内德维德(尤文图斯)、普拉希尔(摩纳哥)、波拉克(纽伦堡)、罗西基(多特蒙德)、斯米切尔(波尔多)

前锋:巴罗什(阿斯顿维拉)、海因茨(加拉塔萨雷)、科勒(多特蒙德)、洛克文茨(萨尔茨堡)、施泰纳(汉诺威96)

F


巴西:豪华阵容无可比拟 霸气十足无人可敌

守门员:

迪达(AC米兰)、塞萨尔(国际米兰)、切尼(圣保罗)

后卫:

卡福(AC米兰)、西西尼奥(皇马)、卢西奥(拜仁慕尼黑)、胡安(勒沃库森)、卡洛斯(皇马)、吉尔伯托(柏林赫塔)、克里斯(里昂)、路易松(本菲卡)

前卫:

埃德米尔森(巴塞罗那)、小儒尼尼奥(里昂)、埃莫森(尤文图斯)、泽罗伯托(拜仁慕尼黑)、吉尔伯托(阿森纳)、卡卡(AC米兰)、里卡迪尼奥(科林斯蒂安)

前锋:

罗纳尔多(皇马)、罗比尼奥(皇马)、罗纳尔迪尼奥(巴塞罗那)、阿德里亚诺(国际米兰)、弗雷德(里昂)

克罗地亚:不来梅前锋冲刺 尤文后卫铁闸

门将:布迪纳(布鲁日)、普勒蒂科萨(海杜克-斯普利特)、迪杜里卡(维也纳)
后卫:罗伯特-科瓦奇(尤文图斯)、托马斯(加拉塔萨雷)、西米奇(AC米兰)、托蒂奇(维也纳)、西穆尼奇(柏林赫塔)、图多尔(锡耶纳)

中场:贾尔克-勒科(基辅迪纳摩)、克兰杰卡(海杜克-斯普利特),尼克-科瓦奇(柏林赫塔)、巴比奇(勒沃库森)、斯尔纳(顿涅兹克矿工)、伊万-勒科(布鲁日)、摩德利奇(萨格勒布迪纳摩)、弗朗耶斯(不来梅)、塞里奇(帕纳辛奈科斯)

前锋:普尔索(流浪者)、克拉什尼奇(不来梅)、巴拉班(布鲁日)、奥里奇(莫斯科中央陆军)、博斯尼亚克(萨格勒布迪纳摩)

澳大利亚:维杜卡“杀”向绿茵 卡拉奇展现神勇

门将:马克-施瓦泽(米德尔斯堡),泽尔科-卡拉奇(AC米兰),安特-科维奇(哈马比)

后卫:迈克尔-比乌坎普(中海岸海员)、克拉格-摩尔(纽卡斯尔)、卢卡斯-尼尔(布莱克本)、托尼-波波维奇(水晶宫)、马克-米利甘(悉尼FC)、文斯-格雷拉(帕尔马)、斯坦-拉扎里迪斯(伯明翰)

前卫:马克-布雷西亚诺(帕尔马)、蒂姆-卡希尔(埃弗顿)、斯科特-齐佩菲尔德(巴塞尔)、贾森-库里纳(埃因霍温)、布雷特-埃莫顿(布莱克本)、乔西普-斯科科(维甘)、卢克-维克谢尔(布里斯托)、哈里-科维尔(利物浦)

前锋:约翰-阿洛伊西(阿拉维斯)、阿尔切-汤普森(汤普森)、马克-维杜卡(米德尔斯堡)、乔什-肯尼迪(迪纳摩德累斯顿)、米尔-斯特约夫斯基(巴塞尔)

日本:“海龟派”领衔强悍中场 本土门将坐镇后防

守门员:川口能活(磐田喜悦),楢崎正刚(名古屋鲸八),土肥洋一(东京)

后卫:宫本恒靖(大阪钢巴),三都主(浦和红宝石),中泽佑二(横滨水手),加地亮(大阪钢巴),田中诚(磐田喜悦),坪井庆介(浦和红宝石),驹野友一(广岛三箭),中田浩二(巴塞尔)

前卫:中田英寿(博尔顿),中村俊辅(凯尔特人),稻本润一(西布朗维奇),远藤保仁(大阪钢巴),福西崇史(磐田喜悦),小笠原满男(鹿岛鹿角),小野伸二(浦和红宝石)

前锋:高原直泰(汉堡),大黑将志(格勒诺布尔),柳泽敦(鹿岛鹿角),玉田圭司(名古屋鲸八),卷诚一郎(千叶杰夫)

G


法国:天才大师谢幕演出 英超“国王”正名之旅

门将:巴特兹(马赛)、库佩(里昂)、朗德罗(南特)

后卫:阿比代尔(里昂)、布姆松(纽卡斯尔)、齐姆波达(维冈竞技)、加拉斯(切尔西)、吉维特(摩纳哥)、图拉姆(尤文图斯)、萨尼奥尔(拜仁慕尼黑)、希尔维斯特(曼联)

中场: 多拉苏(巴黎圣日耳曼)、迪亚拉(朗斯)、马克莱莱(切尔西)、马劳达(里昂)、维埃拉(尤文图斯)、齐达内(皇家马德里)

前锋: 西塞(利物浦)、亨利(阿森纳)、里贝里(马赛)、路易斯-萨哈(曼联)、特雷泽盖(尤文图斯)、维尔托德(里昂)

瑞士:出征德国信心足

守门员:祖贝布勒、科尔托蒂、贝纳格里奥;

后卫:迪乌鲁、森德罗斯、菲利浦·德根、马格宁、格里希丁、施皮歇尔、贝赫拉米、穆勒;

中场:沃热尔、卡巴纳斯、维基、巴内塔、吉加克斯、德兹梅利、大卫·德根、马盖哈兹;

前锋:弗雷、范伦丹、斯特雷勒、鲁斯特里内利。

韩国:太极虎呼啸而动 小杀手勇猛好战

守门员:李云在、金龙大、金永光

后卫:崔镇哲、金珍奎、金永哲、金相植、李荣杓、金东镇、宋宗国、赵元熙

中场:朴智星、金斗铉、金南一、李乙容、李虎、白志勋

前锋:安贞焕、曹宰榛、薛琦铉、朴周永、郑庆浩、李天秀

多哥:非洲黑马值得尊重 枪手前锋意欲作为

守门员:

科西-阿加萨(梅斯),查尼鲁(马里乔里巴),奥比拉勒(费兰特)

后卫:

阿巴洛(塞浦路斯阿波罗),尼邦贝(比利时蒙斯),阿塞莫阿萨(法国克莱蒙特),卡里姆-盖德(汉堡),阿西米乌(勒沃库森),弗尔森(法国波伊),阿格博(比利时贝夫伦),阿科托(奥地利瓦尔克),埃拉萨(克莱蒙特)

中场:

阿齐亚沃努(年轻人),谢里夫-图雷-马曼(梅斯),多塞维(法国瓦伦西安),罗芒(法国洛汉思),奥卢法德(卡塔尔阿尔-西里亚赫),塞纳亚(瑞士青年人YF)

前锋:

阿德巴约(阿森纳),马尔姆(法国布雷斯特),库巴迪亚(甘冈),昌盖(贝内文托),穆斯塔法-萨利富(布雷斯特)

H


西班牙:斗牛士气度不凡 人才济济猛将多多

门将:卡西利亚斯(皇家马德里)、卡尼萨雷斯(瓦伦西亚)、雷纳(利物浦)

后卫:萨尔加多(皇家马德里)、拉莫斯(皇家马德里)、普约尔(巴塞罗那)、巴勃罗(马德里)、华尼托(贝蒂斯)、德尔-奥尔诺(切尔西)、安东尼奥-洛佩斯(马德里竞技)、马切纳(瓦伦西亚)

中场:法布雷加斯(阿森纳)、雷耶斯(阿森纳)、伊涅斯塔(巴塞罗那)、哈维(巴塞罗那)、华金(皇家贝蒂斯)、路易斯-加西亚(利物浦)、阿隆索(利物浦)、阿尔贝尔达(瓦伦西亚)、塞纳(比利亚雷亚尔)

前锋:托雷斯(马德里竞技)、劳尔(皇家马德里)、比利亚(瓦伦西亚)

乌克兰:舍甫琴科光芒四射核弹头待命出鞘

守门员:

舒夫科夫斯基(基辅迪纳摩)、舒斯特(顿涅茨克矿工)、帕亚托夫(沃斯科拉-波尔塔瓦)

后卫:

内斯马奇尼(基辅迪纳摩)、费多罗夫(基辅迪纳摩)、耶泽斯基(德尼普罗)、鲁索尔(德尼普罗)、基格里恩斯基(顿涅茨克矿工)、瓦斯丘克(基辅迪纳摩)、斯维德斯基(基辅阿森纳)

前卫:

季莫什舒克(顿涅茨克矿工)、谢拉耶夫(德尼普罗)、古斯耶夫(基辅迪纳摩)、雷布罗夫(基辅迪纳摩)、古辛(萨马拉)、纳萨连科(德尼普罗)、卡伦耶申科(莫斯科斯巴达)、罗坦(基辅迪纳摩)

前锋:舍甫琴科(AC米兰)、沃洛宁(勒沃库森)、沃罗别伊(顿涅茨克矿工)、别利克(顿涅茨克矿工)、米列夫斯基(基辅迪纳摩)

突尼斯:非洲劲旅名不虚传 荷甲新星引人注目

守门员:

阿里-布姆尼热尔(非洲人),哈姆迪-卡斯拉维(希望),阿德尔-纳夫齐(莫纳斯提尔)

后卫:

卡里姆-哈吉(斯特拉斯堡),拉赫迪-贾伊迪(博尔顿),哈特姆-特拉贝尔西(阿贾克斯),戴维-贾马里(波尔多),阿莱丁-亚希亚(圣埃蒂安),卡里姆-塞迪(莱切),阿尼斯-阿亚里(土耳其沙姆逊体育),梅赫迪-梅里亚赫(萨赫尔明星体育)

中场:

布瓦齐齐(土耳其埃尔西耶体育),阿德尔-切德里(纽伦堡),卡伊斯-古德赫贝内(土耳其沙姆逊体育),索非内-梅里提(土耳其安特普体育),亚乌赫-姆纳里(纽伦堡),哈麦德-纳穆齐(格拉斯哥流浪者),梅赫迪-纳夫蒂(伯明翰)

前锋:

席尔瓦-多斯-桑托斯(图卢兹),齐亚德-亚齐里(特鲁瓦),卡里姆-塞迪里(挪威罗森博格),亚辛-齐卡维(萨赫尔明星体育),伊萨姆-荷马(朗斯)

沙特:旧日世界杯记忆深刻 今朝亚洲雄师重新正名

守门员:

代亚耶亚(阿尔-希拉尔),扎耶德(伊蒂哈德),库亚(阿尔-沙巴布)

后卫:

阿尔-杜克希(伊蒂哈德),塔卡尔(伊蒂哈德),蒙塔沙里(伊蒂哈德),巴赫里(伊蒂法克),马萨德(阿赫利),阿尔-卡迪(阿赫利),侯赛因-阿布杜尔-贾尼(阿赫利),阿尔-卡特兰(阿尔-希拉尔)

中场:

卡里里(伊蒂哈德),努尔(伊蒂哈德),阿敏(伊蒂哈德),卡勒德-阿齐兹(阿尔-希拉尔),阿尔-加姆迪(阿尔-希拉尔),特米亚特(阿尔-希拉尔),沙尔胡布(阿尔-希拉尔)

前锋:

贾巴尔(阿尔-希拉尔),卡赫塔尼(阿尔-希拉尔),安巴尔(阿尔-希拉尔),阿尔-哈蒂(阿尔-纳斯尔),马雷克-马特(阿赫利)

 

JAVA10 Jun 2006 10:26 am

常见版本
alphal 内部测试版
beta 外部测试版
demo 演示版
Enhance 增强版或者加强版 属于正式版
Free 自由版
Full version 完全版 属于正式版
shareware 共享版
Release 发行版 有时间限制
Upgrade 升级版
Retail 零售版
Enterprise 企业版

其他版本
Cardware 属共享软件的一种,只要给作者回复一封电邮或明信片即可。(有的作者并由此提供注册码等),目前这种形式已不多见。
Plus 属增强版,不过这种大部分是在程序界面及多媒体功能上增强。
Preview 预览版
Corporation & Enterprise 企业版
Standard 标准版
Mini 迷你版也叫精简版只有最基本的功能
Premium -- 贵价版
Professional -- 专业版
Express -- 特别版
Deluxe -- 豪华版
Regged -- 已注册版
CN -- 简体中文版
CHT -- 繁体中文版
EN -- 英文版
Multilanguage -- 多语言版

特殊版本
Rip 是指从原版文件(一般是指光盘或光盘镜像文件)直接将有用的内容(核心内容)分离出来,剔除无用的文档,例如PDF说明文件啊,视频演示啊之类的东西,也可以算做是精简版吧…但主要内容功能是一点也不能缺少的!另:DVDrip是指将视频和音频直接从DVD光盘里以文件方式分离出来。
trail 试用版(含有某些限制,如时间、功能,注册后也有可能变为正式版)
RC 版。是 Release Candidate 的缩写,意思是发布倒计时,该版本已经完成全部功能并清除大部分的BUG。到了这个阶段只会除BUG,不会对软件做任何大的更改。
RTM 版。这基本就是最终的版本,英文是 Release To Manufactur,意思是发布到生产商。
Original Equipment Manufacturer (OEM)
You may license products through an Original Equipment Manufacturer (OEM). These products, such as Windows operating systems, come installed when you purchase a new computer.
OEM软件是给电脑生产厂的版本,无需多说。
Full Packaged Product (FPP)?Retail
Physical, shrink-wrapped boxes of licensed product that can be purchased in a local retail store or any local software retailer.
FPP就是零售版(盒装软件),这种产品的光盘的卷标都带有“FPP“字样,比如英文WXP Pro的FPP版本的光盘卷标就是WXPFPP_EN,其中WX表示是Windows XP,P是Professional(H是Home),FPP表明是零售版本,EN是表明是英语。获得途径除了在商店购买之外,某些MSDN用户也可以得到。
Volume Licensing for Organizations (VLO)
You may enjoy potentially significant savings by acquiring multiple product licenses. Depending on the size and type of your organization.
团体批量许可证(大量采购授权合约),这是为团体购买而制定的一种优惠方式。这种产品的光盘的卷标都带有“VOL“字样,取“Volume“前3个字母,以表明是批量,比如英文WXP Pro的VOL版本的光盘卷标就是WXPVOL_EN,其中WX表示是Windows XP,P是Professional(VOL没有Home版本),VOL表明是团体批量许可证版本,EN是表明是英语。获得途径主要是集团购买,某些 MSDN用户也可以得到。
这种版本根据购买数量等又细分为“开放式许可证”、“选择式许可证”、“企业协议”、“学术教育许可证”等以下5种版本
Open License
Select License
Enterprise Agreement
Enterprise Sub脚本ion Agreement
Academic Volume Licensing
由此可见,平时说的什么select/corp是许可证授权方式,他的出现是为了用若干种不同级别的优惠政策卖同一种软件,通过select/corp许可证授权方式得到的xxx的光盘都是VOL这一种、是并不是有很多种,只不过是相同的VOL光盘配以不同的许可证方式;而Volume Licensing (Product) Keys,即VLK,它所指的只是一个Key(密匙),仅仅是一个为证明产品合法化、以及安装所使用的Key,因为根据VOL计划规定,VOL产品是不需要激活的!
或者说,VLK不是指一种版本,而是指这种版本在部署(deploy)过程中所需要的Key,而需要VLK这种Key的版本应该叫做VOL!只不过在实际中,没有必要强调这种叫法、称呼的准确性,加之很多人的VOL版本光盘是通过企业的选择式许可证、企业协议等方式得到的等等原因,所以才会有很多人叫他为 “选择版”等等。
官方网站有一个表格,上面有一句话:“Different products require different Volume Licensing Keys (VLKs). Refer to the table below to make sure you have the correct VLK for your Microsoft product.”,我想这就很好的说明了VLK指的是Key而不是产品了。很明显的,FPP需要激活,VOL不需要激活。
本文内容遵循 "署名 ? 非商业用途 1.0"的创作共用约定.

JAVA09 Jun 2006 04:05 pm

只要把*.war工程拷贝到  Tomcat 5\webapps 下面,然后重新启动Tomcat就可以了

就这么简单

JAVA09 Jun 2006 03:54 pm

一,假设D盘根目录下有SQL这个文件夹,这个文件夹下又有很多*.sql文件,每个*.sql文件里都是一些对数据库进行操作的sql语句,如何用批处理执行那么多*.sql文件呢?

二,到命令行下,用 cd  D:\SQL\   转到SQL这个目录下

                                用  dir /b /s *.sql > d:\text.sql

执行第2个命令后,会把所有*.sql文件的文件名存放到text.sql文件里

三,用Editplus打开text.sql文件,在每行的行头加上“◎”符号(单单◎,没有双引号)。这个操作可以用替换功能。

四,打开SQL*PLUS 或者PL/SQL Developer的命令窗口, 输入 ◎d:\text.sql

回车后,自动执行text.sql里的所有语句。

这个批处理做的还不够彻底,其他好的方式目前还没找到,常识了几个,似乎都不太好。

JAVA08 Jun 2006 07:40 pm

jadclips插件网站:
   http://jadclipse.sourceforge.net/

一、下载:
下载插件:
下载jadclipse_3.1.0.jar版本,该版本支持eclipse3.1M6以上
下载jadclipse_3.2.0.jar版本,该版本支持eclipse3.2M3和eclipse3.2M4.
下载jadclipse_3.2.2.jar版本,该版本支持eclipse3.2M5以上。

    下载Jad反编译工具:
http://www.kpdus.com/jad.html#download,在该页中找到适合自己操作系统平台的jad下载。下载后解压,然后将解压后的jad.exe文件复制到%JAVA_HOME%\BIN目录下面(可以将jad.exe随便放到哪,只要记住路径就好,下面要用到)。

    二、安装:
    方法1、直接将jadclipse_3.1.0.jar复制到%ECLIPSE_HOME%\plugins目录下。

    方法2、使用link方式安装,建立E:\eclipse3.1plugins\jadclipse3.1.0\eclipse\plugins的目录结构,将jadclipse_3.1.0.jar放到plugins目录下面(注:其中E:\eclipse3.1plugins为你自己定义的一个专门放置插件的目录)。再在%ECLIPSE_HOME%\links目录下面建立一个jadclipse3.1.0.link文件(该文件名随便取,保证后缀为。link就OK)。文件里面内容为:path=E:\\eclipse3.1plugins\\jadclipse3.1.0.启动eclipse,打开Window->Preferences->Java->JadClipse,如果没有找到JadClipse,检查插件安装的版本是否与你安装的eclipse版本对应。
我安装的eclipse是:eclipse3.1.2

三、设置参数:
    启动eclipse,打开:Window->Preferences->Java->JadClipse.
1、Path to decompiler,这里设置反编译工具jad的全路径名,比如:%JAVA_HOME%\bin\jad.exe.
2、Directory for temporary files,这里设置临时文件路径。

    至于Window->Preferences->Java->JadClipse目录下的Debug,Directives,Formatting,Misc目录中的参数设置,就不罗嗦。

    四、安装完成后,eclipse自动将JadClipse Class File Viewer设置成class文件的缺省打开方式。如果没有默认,可以在Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。设置完成后,双击*.class文件,eclipse将自动反编译。

    注: 对于存在源代码的类,它不会强行反编译,也就是说它还是会用eclipse自带的Class File Viewer查看class文件。

JAVA08 Jun 2006 07:36 pm

制作可执行的jar文件

常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是说,制作一个可执行的 JAR 文件包,就可以像.chm 文档一样双击运行了;而另一种回答,则是使用 JET 来进行编译。但是 JET 是要用钱买的,而且,据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣。所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性。先来看看什么是 JAR 文件包:

1. JAR 文件包

  JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。举个例子,如果我们具有如下目录结构的一些文件:

  ==
  `– test
    `– Test.class

  把它压缩成 ZIP 文件 test.zip,则这个 ZIP 文件的内部目录结构为:

  test.zp
  `– test
    `– Test.class

  如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为:

  test.jar
  |– META-INF
  |  `– MANIFEST.MF
  `– test
    `–Test.class


2. 创建可执行的 JAR 文件包

  制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法。

  Java 程序是由若干个 .class 文件组成的。这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给 CLASSPATH 环境变量或者 java 命令的 -cp 参数;运行时还要到控制台下去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 (.bat) 或者 Linux 的 Shell 程序。因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言。

  其实不然,如果开发者能够制作一个可执行的 JAR 文件包交给用户,那么用户使用起来就需要方便了。在 Windows 下安装 JRE (Java Runtime Environment) 的时候,安装文件会将 .jar 文件映射给 javaw.exe 打开。那么,对于一个可执行的 JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 (.chm 文档默认是由 hh.exe 打开的)。那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包。

  创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:

  jar cvfm test.jar manifest.mf test

  这里 test.jar 和 manifest.mf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifest.mf。因为要创建可执行的 JAR 文件包,光靠指定一个 manifest.mf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的 JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST。关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了 Main-Class 一项。这在 MANIFEST 中书写格式如下:

  Main-Class: 可执行主类全名(包含包名)

  例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:

  Main-Class: test.Test <回车>

  这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束即可。创建了 manifest.mf 文件之后,我们的目录结构变为:

  ==
  |– test
  |  `– Test.class
  `– manifest.mf

  这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包。也就是在目录树中使用“==”表示的那个目录中,使用如下命令:

  jar cvfm test.jar manifest.mf test

  之后在“==”目录中创建了 test.jar,这个 test.jar 就是执行的 JAR 文件包。运行时只需要使用 java -jar test.jar 命令即可。

  需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样。而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包之前可以使用 java <类名> 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH 正确的情况下)。


3. jar 命令详解

  jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUM 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。

  使用不带任何的 jar 命令我们可以看到 jar 命令的用法如下:

  jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 …

  其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:

  -c 创建新的 JAR 文件包
  -t 列出 JAR 文件包的内容列表
  -x 展开 JAR 文件包的指定文件或者所有文件
  -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)

  [vfm0M] 中的选项可以任选,也可以不选,它们是 jar 命令的选项参数

  -v 生成详细报告并打印到标准输出
  -f 指定 JAR 文件名,通常这个参数是必须的
  -m 指定需要包含的 MANIFEST 清单文件
  -0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快
  -M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数

  [jar-文件] 即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数
  [manifest-文件] 即 MANIFEST 清单文件,它是 -m 参数的附属参数

  [-C 目录] 表示转到指定目录下去执行这个 jar 命令的操作。它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用。
  文件名 … 指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中。

  下面举一些例子来说明 jar 命令的用法:

  1) jar cf test.jar test

  该命令没有执行过程的显示,执行结果是在当前目录生成了 test.jar 文件。如果当前目录已经存在 test.jar,那么该文件将被覆盖。

  2) jar cvf test.jar test

  该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:

  标明清单(manifest)
  增加:test/(读入= 0) (写出= 0)(存储了 0%)
  增加:test/Test.class(读入= 7) (写出= 6)(压缩了 14%)

  3) jar cvfM test.jar test

  该命令与 2) 结果类似,但在生成的 test.jar 中没有包含 META-INF/MANIFEST 文件,打包过程的信息也略有差别:

  增加:test/(读入= 0) (写出= 0)(存储了 0%)
  增加:test/Test.class(读入= 7) (写出= 6)(压缩了 14%)

  4) jar cvfm test.jar manifest.mf test

  运行结果与 2) 相似,显示信息也相同,只是生成 JAR 包中的 META-INF/MANIFEST 内容不同,是包含了 manifest.mf 的内容

  5) jar tf test.jar

  在 test.jar 已经存在的情况下,可以查看 test.jar 中的内容,如对于 2) 和 3) 生成的 test.jar 分别应该此命令,结果如下;

  对于 2)

  META-INF/
  META-INF/MANIFEST.MF
  test/
  test/Test.class

  对于 3)

  test/
  test/Test.class

  6) jar tvf test.jar

  除显示 5) 中显示的内容外,还包括包内文件的详细信息,如:

     0 Wed Jun 19 15:39:06 GMT 2002 META-INF/
    86 Wed Jun 19 15:39:06 GMT 2002 META-INF/MANIFEST.MF
     0 Wed Jun 19 15:33:04 GMT 2002 test/
     7 Wed Jun 19 15:33:04 GMT 2002 test/Test.class

  7) jar xf test.jar

  解开 test.jar 到当前目录,不显示任何信息,对于 2) 生成的 test.jar,解开后的目录结构如下:

  ==
  |– META-INF
  |  `– MANIFEST
  `– test
    `– Test.class

  8) jar xvf test.jar

  运行结果与 7) 相同,对于解压过程有详细信息显示,如:

   创建:META-INF/
  展开:META-INF/MANIFEST.MF
   创建:test/
  展开:test/Test.class

  9) jar uf test.jar manifest.mf

  在 test.jar 中添加了文件 manifest.mf,此使用 jar tf 来查看 test.jar 可以发现 test.jar 中比原来多了一个 manifest。这里顺便提一下,如果使用 -m 参数并指定 manifest.mf 文件,那么 manifest.mf 是作为清单文件 MANIFEST 来使用的,它的内容会被添加到 MANIFEST 中;但是,如果作为一般文件添加到 JAR 文件包中,它跟一般文件无异。

  10) jar uvf test.jar manifest.mf

  与 9) 结果相同,同时有详细信息显示,如:

  增加:manifest.mf(读入= 17) (写出= 19)(压缩了 -11%)


4. 关于 JAR 文件包的一些技巧

  1) 使用 unzip 来解压 JAR 文件

  在介绍 JAR 文件的时候就已经说过了,JAR 文件实际上就是 ZIP 文件,所以可以使用常见的一些解压 ZIP 文件的工具来解压 JAR 文件,如 Windows 下的 WinZip、WinRAR 等和 Linux 下的 unzip 等。使用 WinZip 和 WinRAR 等来解压是因为它们解压比较直观,方便。而使用 unzip,则是因为它解压时可以使用 -d 参数指定目标目录。

  在解压一个 JAR 文件的时候是不能使用 jar 的 -C 参数来指定解压的目标的,因为 -C 参数只在创建或者更新包的时候可用。那么需要将文件解压到某个指定目录下的时候就需要先将这具 JAR 文件拷贝到目标目录下,再进行解压,比较麻烦。如果使用 unzip,就不需要这么麻烦了,只需要指定一个 -d 参数即可。如:

  unzip test.jar -d dest/

  2) 使用 WinZip 或者 WinRAR 等工具创建 JAR 文件

  上面提到 JAR 文件就是包含了 META-INF/MANIFEST 的 ZIP 文件,所以,只需要使用 WinZip、WinRAR 等工具创建所需要 ZIP 压缩包,再往这个 ZIP 压缩包中添加一个包含 MANIFEST 文件的 META-INF 目录即可。对于使用 jar 命令的 -m 参数指定清单文件的情况,只需要将这个 MANIFEST 按需要修改即可。

  3) 使用 jar 命令创建 ZIP 文件

  有些 Linux 下提供了 unzip 命令,但没有 zip 命令,所以需要可以对 ZIP 文件进行解压,即不能创建 ZIP 文件。如要创建一个 ZIP 文件,使用带 -M 参数的 jar 命令即可,因为 -M 参数表示制作 JAR 包的时候不添加 MANIFEST 清单,那么只需要在指定目标 JAR 文件的地方将 .jar 扩展名改为 .zip 扩展名,创建的就是一个不折不扣的 ZIP 文件了,如将上一节的第 3) 个例子略作改动:

  jar cvfM test.zip test

JAVA08 Jun 2006 07:30 pm

[转帖]Eclipse插件–Jode Decompiler

Eclipse插件–Jode Decompiler
大家也许用过其他的反编译工具,比如jad,或者是集成的DJ Java Decompiler,jad可能用起来比较麻烦,但是DJ Java Decompiler还是蛮好用的。
这里我就不说他们了,有空你们可以自己去down一个来玩玩。
我是非常喜欢用Eclipse的啦,在这里我就来说说基于Eclipse的Java反编译插件,也许有人用过Jadclipse,确实很不错的,但是在这里我也不说它了,我现在要说的是Jode Decompiler.
安装非常的简单,help => Software Updates => Find and Install… => Search for new features to install,单击"New Remote Site…" 在URL栏输入 http://www.technoetic.com/eclipse/update然后下一步,就可以看到“jode decompiler plugin *.*”了,选上安装就可以了,由于Jode Decompiler是纯Java编写的所以也不需要其他的什么组件来支持了,安装好了可以看到Window => Preferences… => Java => Jode Decompiler选项卡。安装好了再设置一下文件关联就可以了,Window => Preferences… => General => Editors => File Associations找到"*.class"在"Associated editors"里面可以看到"Jode class file viewer"选中它再单击Default按钮就OK了.
现在就可以开始使用了,建立一个project然后引用你的组件,在组件中找到你所要反编译的类文件打开就可以看到反编译后得到的代码了.看到Eclipse显示出来的反编译代码简直就是一种享受,用DJ Java Decompiler反编译出来的代码也有关键字高亮等的功能,但是总没Eclipse的看起来爽吧.嘿嘿……