子非鱼

BlogJava 首页 新随笔 联系 聚合 管理
  21 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

2007年10月25日 #


eclipse瘦身后发现jboss server view找不到

原因: org.jboss.ide.eclipse.as.feature中定义:

 <requires>
          ...
          <import plugin="org.eclipse.wst.server.ui.doc.user"/>
          ...
</requires>

该doc插件包在瘦身时被干掉了,导致jbossideplugin未正常加载,恢复该包即可
posted @ 2011-09-15 18:40 子非鱼 阅读(266) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2009-03-29 13:27 子非鱼| 编辑 收藏

     摘要:   阅读全文
posted @ 2009-03-28 11:54 子非鱼 阅读(886) | 评论 (1)编辑 收藏

     摘要: 内存溢出与JVM参数设置  阅读全文
posted @ 2009-03-28 10:09 子非鱼| 编辑 收藏

     摘要: 转自 http://topic.csdn.net/u/20080929/02/4e0ef626-98ee-4d6d-96ed-fe40afe8290b.html  阅读全文
posted @ 2009-03-28 09:18 子非鱼| 编辑 收藏

转自:http://lemon.javaeye.com/blog/51480
        http://www.blogjava.net/fhawk/archive/2007/01/16/28993.html
利用IKeyBindingService接口为Action绑定快捷键:

1、
设置commands extension

   <extension
           
point = "org.eclipse.ui.commands">
           
<!-- activeKeyConfiguration项用来说明所绑定快捷键的初始设置 -->
           
<activeKeyConfiguration value="org.eclipse.ui.defaultAcceleratorConfiguration"/>
           
<!-- 如果快捷键设置有多套,可以添加多个类别 -->
           
<category
               
name="intelliPlatform.Category1"
               description
="Test description"
               id
="intelliPlatform.Category1"/>
           
<!-- 其中id为这个command的ID,相关的action通过这个ID标志找到这个command -->
           
<command
             
name="intelliPlatform.command.DataSource"
             category
="intelliPlatform.Category1"
             description
="数据源配置"
             id
="com.longtop.intelliplatform.ide.project.commands.DataSource"/>
        
<!-- 具体的快捷键设置,其中command指定实际的coomand的ID -->
        
<keyBinding
             
command="com.longtop.intelliplatform.ide.project.commands.DataSource"
             configuration
="org.eclipse.ui.defaultAcceleratorConfiguration"
             keySequence
="Ctrl+Shift+D"/>
   
</extension>
 以上是设置了plugin.xml中command extension,并指定了keybinding,在keybinding中
 的keysequence中的字符串是设置的快捷键。 

------------

在具体的Action配置中,只要在其属性definitionId设置成command的ID即可,示例如下:
<action
 
label="Sample Action"
 icon
="icons/sample.gif"
 class
="cli.bacchus.portal.ui.actions.BacchusAction"
 tooltip
="Hello, Eclipse world"
 menubarPath
="sampleMenu/sampleGroup"
 toolbarPath
="sampleGroup"
 id
="bacchus.portal.ui.actions.BacchusAction"
 definitionId
="com.longtop.intelliplatform.ide.project.commands.datesource">
</action>

注意:当给相关的action设置完definitionID后,必须保证其中设置的command是有的,而且是正确的,否则有可能导致该action显示不出来。
更具体的信息请参考eclipse开发参考中关于扩展点org.eclipse.ui.commands的详细描述。

------------

2、
 建立Acion,在此建立的action可以是实现IAction接口的任何类。比较方便的是继承
 org.eclipse.jface.Action,然后在新类中覆盖父类的run() 方法.

 public class CopyAction extends Action{
   
public CopyAction(){
    setId(
"org.example.copyaction");
    setActionDefinitionId(
"com.longtop.intelliplatform.ide.project.commands.DataSource");
   }

 }

3、
在创建CopyAction的instance之后,将copyActionInstance用IKeyBindingService绑定到
指定的command。
获得IKeyBinddingservice的一种简单方式为:
IKeyBindingService keyBindingService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getKeyBindingService();
keyBindingService.registerAction(copyActionInstance);


注意:
1、action的definitionid和command定义的id必须一致。
2、当指定的keySequence与系统默认的冲突时,如:在窗体的菜单栏中
指定了Edit->Copy(默认的快捷键为Ctrl+C),若将上面的keySequence改为
M1+C(Ctrl+C)则系统默认的快捷键(Ctrl+C)将更改为Ctrl+Insert。即RCP默认
的为用户指定的优先,系统动态更新。
3、IKeyBindingService指定的快捷键是有作用范围的。




为主菜单绑定快捷键

主菜单的快捷键即为 Alt + 菜单名称中带下划线的字母
定义主菜单快捷键只要在主菜单lable中确定的字母前面加上&字符即可
如:
plugin.properties  menulabel = &Intelliplatform
plugin_zh.properties menulabel = 平台(&I)
(注意:在该label引用的properties国际化文件中加,直接在plugin.xml中加好像无效,此处存疑)
posted @ 2008-10-06 15:18 子非鱼| 编辑 收藏

JAVA中HashMap的成员遍历  
方法一:  
        Set   entries;  
        entries=map.keySet(); 
        Iterator   iter=entries.iterator();  
        while(iter.hasNext()){  
              Object   obj=iter.next();  
              System.out.println(obj+":"+map.get(obj));      
        }            

   
    方法二:      
        Set   entries;  
        entries=map.entrySet();
        Iterator   iter=entries.iterator();  
        while(iter.hasNext())  
        {  
              System.out.println(iter.next()+"   ");      
        }  

另外,JAVA中 interface和class都可以作为对变量的声明。


    public static void copyDirtoDest(String srcDir, String toDir) {
        Copy copyDir 
= new Copy();
        copyDir.setOverwrite(
true);
        copyDir.setProject(
new Project());
        FileSet fileSet 
= new FileSet();
        fileSet.setDir(
new File(srcDir));
        copyDir.addFileset(fileSet);
        File dest 
= new File(toDir);

        copyDir.setTodir(dest);
        copyDir.execute();
    }


    
public static void copyFiletoDestDir(String srcFile, String destDir) {
        Copy copy 
= new Copy();
        copy.setProject(
new Project());
        copy.setFile(
new File(srcFile));
        copy.setTodir(
new File(destDir));
        copy.execute();
    }


    
public static void makeDir(String dir) {
        Mkdir mkdir 
= new Mkdir();
        mkdir.setProject(
new Project());
        mkdir.setDir(
new File(dir));
        mkdir.execute();
    }


    
public static void copyFiletoDestandRename(String srcFile, String destFile) {
        Copy copyTask 
= new Copy();
        copyTask.setProject(
new Project());
        copyTask.setFile(
new File(srcFile));
        copyTask.setTofile(
new File(destFile));
        copyTask.execute();
    }


    
public static void moveFiletoDest(String srcFile, String destDir) {
        Move move 
= new Move();
        move.setProject(
new Project());
        move.setFile(
new File(srcFile));
        move.setTodir(
new File(destDir));
        move.execute();
    }


验证文件夹名称是否符合java包名规范
//弱验证(只要能被java支持的名称,如中文名称)
IStatus val = JavaConventions.validatePackageName(folder);                 
if (val.getSeverity() == IStatus.ERROR) {
     
return false;
}
 
/**
     * 强验证:是否是严格符合命名规范的包名,标识:以字母开头,字母与数字的组合,字母必须都是小写。
     * 
@param str1
     * 
@return
     
*/

    
public static boolean isPackageName(String str1){
        String regex 
= "^[a-z][a-z[\\d]]*";  
        Pattern p 
= Pattern.compile(regex);
        Matcher m 
= p.matcher(str1);        
        
return  m.matches();
    }


hibernate3 hql 参数乱码问题
Hql中有中文参数(如from test as c where c.name='张三')的话被翻译成sql的时候会出现乱码,解决方法:
在Spring的配制文件applicationContext.xml文件中添加以下代码:
    <property name="hibernateProperties">
        
<props>
                 
            
<prop key="hibernate.query.factory_class">
                org.hibernate.hql.classic.ClassicQueryTranslatorFactory
            
</prop>
        
</props>
    
</property>

list转Array
(IAction[]) list.toArray(new IAction[0]);
(IAction[]) list.toArray(new IAction[list.size()]);
posted @ 2008-04-12 23:07 子非鱼| 编辑 收藏


打包时过滤文件

在build.properties中的bin.excludes加入要过滤的文件
(例如:过滤jar包中所有文件夹下的CC配置文件.copyarea.db,应该填写 bin.excludes = **/.copyarea.db )



构建时过滤文件

 

Properties -> Java Compiler -> Building

勾选Enable project specific settings, 在Output folder栏的Filtered Resources中填写你要过滤的文件   (例如:过滤bin目录中所有文件夹下的CC配置文件.copyarea.db,应该填写 *.copyarea.db)


posted @ 2008-02-20 10:10 子非鱼| 编辑 收藏

内部类调用外部类对象(转)
内部类可以使用外部类名.this引用外部类的当前对象,然后就可以使用外部类的任何属性和方法了   
  class   OuterClass{     
  
public   void   show()   {   
        System.out.println(
"method   of  out   class");   
  }
   
  
class   InnerClass{   
  
public   void   showStr(){   
  OuterClass.
this.show()   
  }
   
  }
  


String[] strs = str.split(",");


web.xml中配置tag-lib间接引用

<%@ taglib uri="http://www.ccb.cn/xmdc" prefix="xmdc"%>

        在web.xml中增加下面的内容:
  <taglib>
    
<taglib-uri>http://www.ccb.cn/xmdc</taglib-uri>
    
<taglib-location>/WEB-INF/xmdc.tld</taglib-location>
  
</taglib>

小颖反编译工具无法反编译jdk1.5以上的class的解决办法

下载可以反编译1.5以上的jdk编译的class的新版本jad.exe,替换掉在window路径下的小颖用的老版本的 jad.exe ,小颖就好用了。

其实小颖也就是jad.exe的一个shell,替换了就好了。

jad的下载地址:http://www.kpdus.com/jad.html#download

posted @ 2008-01-24 11:30 子非鱼| 编辑 收藏

BeanUtils和PropertyUtils类是许多开源框架中频繁使用的两个工具,它们都能实现将一个类中的属性拷贝到另一个类中,这个功能甚至是spring实现依赖注入的基础。研究一下apache的comon包中如何实现这个两个工具,可以发现它们都是使用java.lang.reflect和java.beans这两个包下的几个类来实现的。

    这里我们通过编写一个将一个类的所有属性拷贝到另一个类的相应属性的方法来分析是如何实现拷贝功能的.先把方法放上来:

/** 实现将源类属性拷贝到目标类中
   * 
@param source 
   * 
@param target
   
*/

public static void copyProperties(Object source, Object target) {
   
try {
        
//获取目标类的属性信息
        BeanInfo targetbean = Introspector.getBeanInfo(target.getClass());
        PropertyDescriptor[] propertyDescriptors 
= targetbean.getPropertyDescriptors();
        
//对每个目标类的属性查找set方法,并进行处理
        for (int i = 0; i < propertyDescriptors.length; i++{
             PropertyDescriptor pro 
= propertyDescriptors[i];
             Method wm 
= pro.getWriteMethod();
             
if (wm != null{//当目标类的属性具有set方法时,查找源类中是否有相同属性的get方法
                 BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass());
                 PropertyDescriptor[] sourcepds 
= sourceBean.getPropertyDescriptors();
                 
for (int j = 0; j < sourcepds.length; j++{
                      
if (sourcepds[j].getName().equals(pro.getName())) //匹配
                           Method rm = sourcepds[j].getReadMethod();
                           
//如果方法不可访问(get方法是私有的或不可达),则抛出SecurityException
                           if (!Modifier.isPublic(rm.getDeclaringClass().getModifiers())) {
                                rm.setAccessible(
true);
                           }

                          
//获取对应属性get所得到的值
                          Object value = rm.invoke(source,new Object[0]);
                          
if (!Modifier.isPublic(wm.getDeclaringClass().getModifiers())) {
                               wm.setAccessible(
true);
                          }

                          
//调用目标类对应属性的set方法对该属性进行填充
                          wm.invoke((Object) target, new Object[] { value });
                          
break;
                      }

                 }

              }

          }

   }
 catch (IntrospectionException e) {
       e.printStackTrace();
   }
 catch (IllegalArgumentException e) {
       e.printStackTrace();
   }
 catch (IllegalAccessException e) {
       e.printStackTrace();
  }
 catch (InvocationTargetException e) {
      e.printStackTrace();
  }

}

两个工具的其他方法实现虽然有点差别,但原理都跟上面的例子差不多,有兴趣的话可以写个测试类试试是否可以使用.

转自: http://lemonfamily.blogdriver.com/lemonfamily/1240784.html

posted @ 2007-10-25 10:16 子非鱼| 编辑 收藏

  第一:了解自己

  个人的习惯爱好和生活经历将反映到他的交易心态与交易风格中去,了解自己非常重要,所以放在第一位。和技术分析一样,个人的性格也可以通过他的历史来归纳总结,不同的性格和经历将会有适合他的不同的交易策略,只有适合自己的交易系统才能帮助自己成功。

  第二:选择市场
  许多人是没有这个概念的。但是今天我要告诉你,选择市场是比选择时机还要重要的。活跃的市场能够帮助你尽快成功,而在低迷的市场中运做,英雄也会气短。比如说2006年的金属期货市场火暴,当时投入即使不是很懂得基本面或者技术面分析的人也有可能获得暴利。听说某人2006年获利千倍,我想这不是虚言。市场的活跃是获利的基础,为什么股民让人觉得可怜?就因为股民踏进了一个圈钱的市场,很少有长胜将军,更不要说是大师了。是市场导致了你的成败。

  对于许多人来说让他们选择市场是天方夜谭,他们的资本和时间限制了他们投向其他市场领域,所以只能在股海里苦苦挣扎,却不知道虽然不能转向其他市场但可以上岸观火,这就注定了大多数人的失败。若你没办法去选择市场,那么请接着往下看。

  第三:选择时机,分辨牛熊

  再好的市场也要选择合适的时机介入,看错的时间就是对金钱的犯罪。一买就套影响心态,直接关系今后的成败。首先是分辨牛市还是熊市。牛市有牛市的特征,熊市有熊市的特征,这些特征是原始和长久的,就和我们的老祖宗所说的“道”一样,是一种原理,是不变的,变化的只是形式,把握住了精神就可以简单的分辨出来。

  牛市与熊市乃是两个大纲。牛市操作,熊市休息,不要觉得只是口号,而是必须坚决执行的原则,你违逆它就有可能在某一天将你几年辛苦筑就的大厦夷为平地。继续细分为6种状态:牛市中的熊市,牛市中的牛市,熊市中的牛市,熊市中的熊市,平衡市中的牛市,平衡市中的熊市。投入的资金比例分别是30-50%,80-100%,20-30%,0-10%,20-30%,10-20%。

  这么细分的结果是为了资金管理。大多数人是不屑于资金管理的,但这很重要,很多成功者成功是因为他踩对了时代的步伐,也就是跟对了趋势,更有人是有意识的去跟从趋势。

  这些是成功者的总结。交易的主要利润都是在牛市中期获得的,更多的时间都是浪费在熊市与平衡市中,这里赚一点那里亏一点,总觉得技术不错了钱赚少了,其实就是忽视了时机。所以当明白了这点后将资金管理运用到枯燥的牛熊分区中。用纪律来约束自己,避免踏入陷阱。有很多水平高的朋友没有逃脱4年的熊市,他们没有倒在急风暴雨的2001年,也没有死在斜风细雨的2002年,却牺牲在口号连连的2003年和2004年,不胜感慨。市场很残酷,你的离去总会迎来新人,没有人还会记得你曾经的辉煌。失败者总是与轻蔑与同情联系在一起。所以大家要比的是谁活得时间长,谁活得质量高。

  缩量震荡——小盘股

  大盘稳健但能量不足时是小盘股的活跃期,因大盘能量不能满足规模性热点的施展,所以个股行情“星星点火”,其中又以小能量下小盘股行情更为靓丽。由于小能量难以满足行情的持续性,故小盘股行情往往涨势较迅捷,持续周期较短,适于短线操作。

  突发利好——次新股

  无论大盘处于什么状态,若遇突发性重大利好公布,往往是价低次新股的活跃期。因为老股中往往有老资金进驻或者受困,新资金即不愿为老资金抬轿,更不愿为老资金解套。所以,重大利好公布后,上市不久的次新股群往往成为新资金“先入为主”的攻击对象。

  调整时期——庄股

  大盘调整时是庄股的活跃周期。由于市场热点早已湮灭,庄股则或因主力受困自救,或是潜在题材趁疲弱市道超前建仓……疲弱市道中的庄股犹如夜幕中的一盏盏 “豆油灯”,虽不能照亮整个市场,也能使投资大众不至于绝望。同时,多少还能诱惑“投资小众”一起来“往豆油灯里添加燃油”,或者是引来“飞蛾扑火”。

  波段急跌——指标股

  大盘波段性急跌后是大盘指标股的活跃期。急跌后能令大盘迅速复位的,必然是能牵动全局的指标股。因为“四两拨千斤”的功效大,也因为低价股护盘的成本低。

  调整尾声——超跌低价股

  大波段调整进入尾声后是超跌低价股的活跃期。因为前期跌幅最大的超跌低价股风险释放最干净,技术性反弹要求最强烈。由于大势进入调整的尾声,尚未反转,新的热点难以形成,便给了超跌低价股的表现机会。

  牛市确立——高价股

  牛市行情确立是高价股的活跃期。高价股是市场的“贵族阶层”,位居市场最顶层,在大盘进入牛市阶段后,需要它们打开上档空间,为市场创造牛市空间,给中低价股起到“传、帮、带”的作用。

  休整时期——题材股

  大盘休整性整理是题材股的活跃期。因为休整期市场热点分散,个股行情开始涨跌无序,增量资金望而却步,只能运用题材或概念来聚拢市场的视线,聚集有限的资金,吸引市场开始分散的动量。

  报表时期——“双高”股

  年(中报)公布期及前夕是高公积金、高净资产值股票的活跃周期。因为这样的上市公司有股本扩张的需求和条件,有通过高分红来降低每股净资产值的需要。在股市开始崇尚资本利得和低风险稳定收益后,高分红也已经成为市场保值性大资金的宠爱。
 
posted @ 2007-10-25 10:05 子非鱼| 编辑 收藏