星期日, 一月 27, 2013

如何在Eclipse 中实现Build number的功能

思路:利用Ant builder
如图
1.首先输入当前Project的ant build.xml文件,和一个保存编译计数器的properties文件。

加入新的target用name 来指定:
    
        
        
        
        


   




2.给项目加入Ant Builder ,项目属性里寻找Builder 然后加入Ant Builder,然后将其用
up按钮移动到最顶部,让其第一个被调用.


 3.要加入refresh的功能和默认的target,这个参考如上和如下两个图就知道了.







星期二, 一月 22, 2013

keytool 常见用法

查看一个已经生成的keystore 文件
keytool -list -v -keystore debug.keystore

需要密码

星期三, 一月 16, 2013

abap 执行本地SQL Native SQL

 exec sql.
 insert into test(code) valeus(
                      :pl_wa-Entity_Code,
                    );
      endexec.
      if sy-subrc ne 0.
        write:/,'fail!'.
      endif.
    commit work.

SAP ABAP如何直接运行一个本地SQL SELECT查看结果.

ECC 6.t-code db02即可做到这个。
DB02 -> Diagnosis -> SQL Command editor



星期一, 一月 14, 2013

Dynamic load properties file by Absolulated directory way.

这样可以在classpath里修改controlSetup.properties文件的值,而直接在程序里使用。
通过getResourceAsStream方式载入的文件被Cache.

public InputStream getpro()
 {
String propersetupfile="com/resources/controlSetup.properties";    
String dir=this.getServlet().getServletContext().getRealPath("/");
System.out.println("real directory:"+dir);
String pdir=dir+"WEB-INF/classes/"+propersetupfile;
System.out.println("properties file in:"+pdir);
InputStream fi=null;
try
{
fi=new FileInputStream(pdir);
}catch(Exception e)
{
e.printStackTrace();
       
     fi= this.getClass()
        .getClassLoader()
        .getResourceAsStream(propersetupfile);
}
return fi;
//     return this.getClass()
//        .getClassLoader()
//        .getResourceAsStream(propersetupfile);
 }  

Java读取某个目录下的制定properteis tips

 String fileName = "test.app"; // 注意格式 test 为包名,默认读取后缀为.properties的文件
ResourceBundle rb = ResourceBundle.getBundle(fileName, new java.util.Locale(""));

在test目录下有2个文件 app.properties和app_en.properties
如果想读取 app.properties 则只要给一个空的Locale("")即可。
同样,想读取app_en.properties需要用 Locale("en")

Java计算tips,如何从一个数字字符串中得到字符整数转换。

char character = string.charAt(index);
int x = (character – '0') * 20;

星期四, 一月 10, 2013

abap 如何获得Internal table的定义字段,用RTTS

*&---------------------------------------------------------------------*
*& Report  Z_GET_TABLE_COLUMNNAME
*& get component structure by RTTS.(Runtime Type Servcies)
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_GET_TABLE_COLUMNNAME.

TYPESBEGIN OF typ_itab,
         sex(20TYPE c,
         tigh TYPE i,
         salary TYPE p LENGTH 12 DECIMALS 3,
         name type string,
          END OF typ_itab.
DATAi_itab TYPE TABLE OF typ_itab "if has with header line,exceptin happend
      l_tabledescr_ref TYPE REF TO cl_abap_tabledescr,
      l_descr_ref      TYPE REF TO cl_abap_structdescr,
      wa_table TYPE abap_compdescr.

l_tabledescr_ref ?= cl_abap_typedescr=>describe_by_datai_itab ).
l_descr_ref ?= l_tabledescr_ref->get_table_line_type).

LOOP AT l_descr_ref->components INTO wa_table .
  WRITE/ wa_table-name,wa_table-type_kind,
         wa_table-length,wa_table-decimals.
ENDLOOP.

cl_salv_table 获得 所有internal table 定义field name

FORM alv_fieldcat_reset2
    USING alv_table   TYPE REF TO cl_salv_table.
  DATA: lo_columns TYPE REF TO cl_salv_columns.
  DATA: lo_column TYPE REF TO cl_salv_column.
  "add field authority check
  DATA: alv_fieldcat TYPE slis_fieldcat_alv.
  DATA: cx_exc_ref    TYPE REF TO cx_root.
  DATA error_text TYPE c.
  DATA:
    lta_column_ref TYPE salv_t_column_ref
  .
  FIELD-SYMBOLS:
    <lfs_column> LIKE LINE OF lta_column_ref
  lo_columns = alv_table->get_columns( ).
      lta_column_ref = lo_columns->get( ).
      LOOP AT lta_column_ref ASSIGNING <lfs_column> .
        lo_column = <lfs_column>-r_column.
 write <lfs_column>-columnname.

      ENDLOOP. 

星期三, 一月 02, 2013

Volatile: why prevent compiler reorder code

Prior to Java-5 ,编译器竟然会调整语句的顺序来优化!!!

解释链接:

http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#volatile