锘??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕亚洲精品无码,久久亚洲欧洲国产综合,亚洲VA中文字幕无码一二三区 http://www.tkk7.com/vjame/category/34442.html浼樺寲浠g爜鏄棤姝㈠鐨?/description>zh-cnWed, 12 Oct 2011 10:06:29 GMTWed, 12 Oct 2011 10:06:29 GMT60MyEclipse Subscription code鐢熸垚鍣ㄤ唬鐮?/title><link>http://www.tkk7.com/vjame/archive/2011/10/12/361016.html</link><dc:creator>lanjh</dc:creator><author>lanjh</author><pubDate>Wed, 12 Oct 2011 01:02:00 GMT</pubDate><guid>http://www.tkk7.com/vjame/archive/2011/10/12/361016.html</guid><wfw:comment>http://www.tkk7.com/vjame/comments/361016.html</wfw:comment><comments>http://www.tkk7.com/vjame/archive/2011/10/12/361016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/vjame/comments/commentRss/361016.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/vjame/services/trackbacks/361016.html</trackback:ping><description><![CDATA[<br /><br /><br /> <p style="text-indent: 2em">瀵瑰簲涓嶅悓鐨勭増鏈妸KeyGenerator綾繪斁鍒頒換鎰忓伐紼嬩笅錛屾墽琛岀▼搴忥紝鍦ㄦ帶鍒跺彴杈撳叆娉ㄥ唽鍚嶇О錛屽洖杞﹀悗浼氱敓鎴愬簭鍒楀彿銆?br /></p><br /><br /><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">package</span><span style="color: #000000"> com.strongit.test;<br /><br /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /><br /></span><span style="color: #008000">/**</span><span style="color: #008000"><br /> *  MyEclipse6.0 Register Code<br /> * </span><span style="color: #808080">@author</span><span style="color: #008000"> lanjh<br /> *<br /> </span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> KeyGeneratorForMyEclipse6 {<br /><br />     </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">final</span><span style="color: #000000"> String LL </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><br />        </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getSerial(String userId, String licenseNum) {<br /><br />            java.util.Calendar cal </span><span style="color: #000000">=</span><span style="color: #000000"> java.util.Calendar.getInstance();<br /><br />            cal.add(</span><span style="color: #000000">1</span><span style="color: #000000">, </span><span style="color: #000000">3</span><span style="color: #000000">);<br /><br />            cal.add(</span><span style="color: #000000">6</span><span style="color: #000000">, </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br /><br />            java.text.NumberFormat nf </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> java.text.DecimalFormat(</span><span style="color: #000000">"</span><span style="color: #000000">000</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br />            licenseNum </span><span style="color: #000000">=</span><span style="color: #000000"> nf.format(Integer.valueOf(licenseNum));<br /><br />            String verTime </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(</span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000">).append(</span><span style="color: #0000ff">new</span><span style="color: #000000"> java.text.<br /><br />                    SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyMMdd</span><span style="color: #000000">"</span><span style="color: #000000">).format(cal.getTime())).append(</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">).<br /><br />                             toString();<br /><br />            String type </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">YE3MP-</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><br />            String need </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(userId.substring(</span><span style="color: #000000">0</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000">)).append(type).<br /><br />                          append(</span><span style="color: #000000">"</span><span style="color: #000000">300</span><span style="color: #000000">"</span><span style="color: #000000">).append(licenseNum).append(verTime).toString();<br /><br />            String dx </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(need).append(LL).append(userId).toString();<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> suf </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">this</span><span style="color: #000000">.decode(dx);<br /><br />            String code </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(need).append(String.valueOf(suf)).<br /><br />                          toString();<br /><br />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">this</span><span style="color: #000000">.change(code);<br /><br />        }<br /><br />        </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> decode(String s) {<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> i;<br /><br />            </span><span style="color: #0000ff">char</span><span style="color: #000000">[] ac;<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> j;<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> k;<br /><br />            i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />            ac </span><span style="color: #000000">=</span><span style="color: #000000"> s.toCharArray();<br /><br />            j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />            k </span><span style="color: #000000">=</span><span style="color: #000000"> ac.length;<br /><br />            </span><span style="color: #0000ff">while</span><span style="color: #000000"> (j </span><span style="color: #000000"><</span><span style="color: #000000"> k) {<br /><br />                i </span><span style="color: #000000">=</span><span style="color: #000000"> (</span><span style="color: #000000">31</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000"> i) </span><span style="color: #000000">+</span><span style="color: #000000"> ac[j];<br /><br />                j</span><span style="color: #000000">++</span><span style="color: #000000">;<br /><br />            }<br /><br />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> Math.abs(i);<br /><br />        }<br /><br />        </span><span style="color: #0000ff">private</span><span style="color: #000000"> String change(String s) {<br /><br />            </span><span style="color: #0000ff">byte</span><span style="color: #000000">[] abyte0;<br /><br />            </span><span style="color: #0000ff">char</span><span style="color: #000000">[] ac;<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> i;<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> k;<br /><br />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> j;<br /><br />            abyte0 </span><span style="color: #000000">=</span><span style="color: #000000"> s.getBytes();<br /><br />            ac </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">char</span><span style="color: #000000">[s.length()];<br /><br />            i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />            k </span><span style="color: #000000">=</span><span style="color: #000000"> abyte0.length;<br /><br />            </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i </span><span style="color: #000000"><</span><span style="color: #000000"> k) {<br /><br />                j </span><span style="color: #000000">=</span><span style="color: #000000"> abyte0[i];<br /><br />                </span><span style="color: #0000ff">if</span><span style="color: #000000"> ((j </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">48</span><span style="color: #000000">) </span><span style="color: #000000">&&</span><span style="color: #000000"> (j </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">57</span><span style="color: #000000">)) {<br /><br />                    j </span><span style="color: #000000">=</span><span style="color: #000000"> (((j </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">48</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">5</span><span style="color: #000000">) </span><span style="color: #000000">%</span><span style="color: #000000"> </span><span style="color: #000000">10</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">48</span><span style="color: #000000">;<br /><br />                } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> ((j </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">65</span><span style="color: #000000">) </span><span style="color: #000000">&&</span><span style="color: #000000"> (j </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">90</span><span style="color: #000000">)) {<br /><br />                    j </span><span style="color: #000000">=</span><span style="color: #000000"> (((j </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">65</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">13</span><span style="color: #000000">) </span><span style="color: #000000">%</span><span style="color: #000000"> </span><span style="color: #000000">26</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">65</span><span style="color: #000000">;<br /><br />                } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> ((j </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">97</span><span style="color: #000000">) </span><span style="color: #000000">&&</span><span style="color: #000000"> (j </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">122</span><span style="color: #000000">)) {<br /><br />                    j </span><span style="color: #000000">=</span><span style="color: #000000"> (((j </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">97</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">13</span><span style="color: #000000">) </span><span style="color: #000000">%</span><span style="color: #000000"> </span><span style="color: #000000">26</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">97</span><span style="color: #000000">;<br /><br />                }<br /><br />                ac[i] </span><span style="color: #000000">=</span><span style="color: #000000"> (</span><span style="color: #0000ff">char</span><span style="color: #000000">) j;<br /><br />                i</span><span style="color: #000000">++</span><span style="color: #000000">;<br /><br />            }<br /><br />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> String.valueOf(ac);<br /><br />        }<br /><br />        </span><span style="color: #0000ff">public</span><span style="color: #000000"> KeyGeneratorForMyEclipse6() {<br /><br />            </span><span style="color: #0000ff">super</span><span style="color: #000000">();<br /><br />        }<br /><br />        </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) {<br /><br />            </span><span style="color: #0000ff">try</span><span style="color: #000000"> {<br /><br />                System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">please input register name:</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br />                BufferedReader reader </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000"> InputStreamReader(<br /><br />                        System.in));<br /><br />                String userId </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><br />                userId </span><span style="color: #000000">=</span><span style="color: #000000"> reader.readLine();<br /><br />                KeyGeneratorForMyEclipse6 myeclipsegen </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> KeyGeneratorForMyEclipse6();<br /><br />                String res </span><span style="color: #000000">=</span><span style="color: #000000"> myeclipsegen.getSerial(userId, </span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br />                System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Serial:</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">+</span><span style="color: #000000"> res);<br /><br />                reader.readLine();<br /><br />            } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IOException ex) {<br /><br />            }<br /><br />        }<br />}<br /></span></div> <p style="text-indent: 2em"></p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">package</span><span style="color: #000000"> com.strongit.test;<br /><br /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.BufferedReader;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;<br /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.InputStreamReader;<br /><br /></span><span style="color: #008000">/**</span><span style="color: #008000"><br /> * MyEclipse7.0 Register Code<br /> * </span><span style="color: #808080">@author</span><span style="color: #008000"> lanjh<br /> *<br /> </span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> KeyGeneratorForMyEclipse7 {<br /><br />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">final</span><span style="color: #000000"> String LL </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getSerial(String userId, String licenseNum) {<br /><br />        java.util.Calendar cal </span><span style="color: #000000">=</span><span style="color: #000000"> java.util.Calendar.getInstance();<br /><br />        cal.add(</span><span style="color: #000000">1</span><span style="color: #000000">, </span><span style="color: #000000">3</span><span style="color: #000000">);<br /><br />        cal.add(</span><span style="color: #000000">6</span><span style="color: #000000">, </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br /><br />        java.text.NumberFormat nf </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> java.text.DecimalFormat(</span><span style="color: #000000">"</span><span style="color: #000000">000</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br />        licenseNum </span><span style="color: #000000">=</span><span style="color: #000000"> nf.format(Integer.valueOf(licenseNum));<br /><br />        String verTime </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(</span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000">).append(<br /><br />        </span><span style="color: #0000ff">new</span><span style="color: #000000"> java.text.SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyMMdd</span><span style="color: #000000">"</span><span style="color: #000000">).format(cal.getTime()))<br /><br />        .append(</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">).toString();<br /><br />        String type </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">YE3MP-</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><br />        String need </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(userId.substring(</span><span style="color: #000000">0</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000">)).append(type)<br /><br />        .append(</span><span style="color: #000000">"</span><span style="color: #000000">300</span><span style="color: #000000">"</span><span style="color: #000000">).append(licenseNum).append(verTime).toString();<br /><br />        String dx </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(need).append(LL).append(userId)<br /><br />        .toString();<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> suf </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">this</span><span style="color: #000000">.decode(dx);<br /><br />        String code </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(need).append(String.valueOf(suf))<br /><br />        .toString();<br /><br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">this</span><span style="color: #000000">.change(code);<br /><br />    }<br /><br />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> decode(String s) {<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> i;<br /><br />        </span><span style="color: #0000ff">char</span><span style="color: #000000">[] ac;<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> j;<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> k;<br /><br />        i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />        ac </span><span style="color: #000000">=</span><span style="color: #000000"> s.toCharArray();<br /><br />        j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />        k </span><span style="color: #000000">=</span><span style="color: #000000"> ac.length;<br /><br />        </span><span style="color: #0000ff">while</span><span style="color: #000000"> (j </span><span style="color: #000000"><</span><span style="color: #000000"> k) {<br /><br />            i </span><span style="color: #000000">=</span><span style="color: #000000"> (</span><span style="color: #000000">31</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000"> i) </span><span style="color: #000000">+</span><span style="color: #000000"> ac[j];<br /><br />            j</span><span style="color: #000000">++</span><span style="color: #000000">;<br /><br />        }<br /><br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> Math.abs(i);<br /><br />    }<br /><br />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> String change(String s) {<br /><br />        </span><span style="color: #0000ff">byte</span><span style="color: #000000">[] abyte0;<br /><br />        </span><span style="color: #0000ff">char</span><span style="color: #000000">[] ac;<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> i;<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> k;<br /><br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> j;<br /><br />        abyte0 </span><span style="color: #000000">=</span><span style="color: #000000"> s.getBytes();<br /><br />        ac </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">char</span><span style="color: #000000">[s.length()];<br /><br />        i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />        k </span><span style="color: #000000">=</span><span style="color: #000000"> abyte0.length;<br /><br />        </span><span style="color: #0000ff">while</span><span style="color: #000000"> (i </span><span style="color: #000000"><</span><span style="color: #000000"> k) {<br /><br />            j </span><span style="color: #000000">=</span><span style="color: #000000"> abyte0[i];<br /><br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> ((j </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">48</span><span style="color: #000000">) </span><span style="color: #000000">&&</span><span style="color: #000000"> (j </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">57</span><span style="color: #000000">)) {<br /><br />                j </span><span style="color: #000000">=</span><span style="color: #000000"> (((j </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">48</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">5</span><span style="color: #000000">) </span><span style="color: #000000">%</span><span style="color: #000000"> </span><span style="color: #000000">10</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">48</span><span style="color: #000000">;<br /><br />            } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> ((j </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">65</span><span style="color: #000000">) </span><span style="color: #000000">&&</span><span style="color: #000000"> (j </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">90</span><span style="color: #000000">)) {<br /><br />                j </span><span style="color: #000000">=</span><span style="color: #000000"> (((j </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">65</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">13</span><span style="color: #000000">) </span><span style="color: #000000">%</span><span style="color: #000000"> </span><span style="color: #000000">26</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">65</span><span style="color: #000000">;<br /><br />            } </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> ((j </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">97</span><span style="color: #000000">) </span><span style="color: #000000">&&</span><span style="color: #000000"> (j </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">122</span><span style="color: #000000">)) {<br /><br />                j </span><span style="color: #000000">=</span><span style="color: #000000"> (((j </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">97</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">13</span><span style="color: #000000">) </span><span style="color: #000000">%</span><span style="color: #000000"> </span><span style="color: #000000">26</span><span style="color: #000000">) </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">97</span><span style="color: #000000">;<br /><br />            }<br /><br />            ac[i] </span><span style="color: #000000">=</span><span style="color: #000000"> (</span><span style="color: #0000ff">char</span><span style="color: #000000">) j;<br /><br />            i</span><span style="color: #000000">++</span><span style="color: #000000">;<br /><br />        }<br /><br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> String.valueOf(ac);<br /><br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> KeyGeneratorForMyEclipse7() {<br /><br />        </span><span style="color: #0000ff">super</span><span style="color: #000000">();<br /><br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) {<br /><br />        </span><span style="color: #0000ff">try</span><span style="color: #000000"> {<br /><br />            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">please input register name:</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br />            BufferedReader reader </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000"> InputStreamReader(<br /><br />            System.in));<br /><br />            String userId </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><br />            userId </span><span style="color: #000000">=</span><span style="color: #000000"> reader.readLine();<br /><br />            KeyGeneratorForMyEclipse7 myeclipsegen </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> KeyGeneratorForMyEclipse7();<br /><br />            String res </span><span style="color: #000000">=</span><span style="color: #000000"> myeclipsegen.getSerial(userId, </span><span style="color: #000000">"</span><span style="color: #000000">5</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><br />            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Serial:</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">+</span><span style="color: #000000"> res);<br /><br />            reader.readLine();<br /><br />        } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IOException ex) {<br /><br />        }<br /><br />    }<br /><br />}<br /></span></div> <p style="text-indent: 2em"><br /><br /><br /><br /><br /></p><img src ="http://www.tkk7.com/vjame/aggbug/361016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/vjame/" target="_blank">lanjh</a> 2011-10-12 09:02 <a href="http://www.tkk7.com/vjame/archive/2011/10/12/361016.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤greenmail嫻嬭瘯鍙戦侀偖浠?/title><link>http://www.tkk7.com/vjame/archive/2011/08/14/greenmail.html</link><dc:creator>lanjh</dc:creator><author>lanjh</author><pubDate>Sun, 14 Aug 2011 03:15:00 GMT</pubDate><guid>http://www.tkk7.com/vjame/archive/2011/08/14/greenmail.html</guid><wfw:comment>http://www.tkk7.com/vjame/comments/356483.html</wfw:comment><comments>http://www.tkk7.com/vjame/archive/2011/08/14/greenmail.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/vjame/comments/commentRss/356483.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/vjame/services/trackbacks/356483.html</trackback:ping><description><![CDATA[<br /><strong style="color: red">1銆佽嚜瀹氫箟寮傚父綾籄ccountEmailException</strong> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> AccountEmailException<br />    </span><span style="color: #0000ff">extends</span><span style="color: #000000"> Exception<br />{<br />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">final</span><span style="color: #000000"> </span><span style="color: #0000ff">long</span><span style="color: #000000"> serialVersionUID </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">4817386460334501672L</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> AccountEmailException( String message )<br />    {<br />        </span><span style="color: #0000ff">super</span><span style="color: #000000">( message );<br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> AccountEmailException( String message, Throwable throwable )<br />    {<br />        </span><span style="color: #0000ff">super</span><span style="color: #000000">( message, throwable );<br />    }<br />}</span></div><br /><strong style="color: red">2銆佸彂閭歡鐨勬帴鍙g被</strong><strong><br /></strong> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">interface</span><span style="color: #000000"> AccountEmailService<br />{<br />    </span><span style="color: #008000">/**</span><span style="color: #008000"><br />     *         鍙戦侀偖浠?br />     *          to涓烘帴鏀跺湴鍧錛宻ubject涓洪偖浠朵富棰橈紝htmlText涓洪偖浠跺唴瀹?br />      *   </span><span style="color: #808080">@author</span><span style="color: #008000"> lanjh 涓婂崍10:51:45<br />      *   </span><span style="color: #808080">@return</span><span style="color: #008000"> void<br />      *   </span><span style="color: #808080">@throws</span><span style="color: #008000">  鎶涘嚭寮傚父璇存槑<br />     </span><span style="color: #008000">*/</span><span style="color: #000000"><br />    </span><span style="color: #0000ff">void</span><span style="color: #000000"> sendMail( String to, String subject, String </span><span>ht</span><span style="color: #ff0000">mlText )</span><span style="color: #000000"><br />        </span><span style="color: #ff0000">throws</span><span style="color: #ff0000"> AccountEmailException;<br /></span><span style="color: #ff0000">}</span></div><br /><br /><br /><strong style="color: #ff0000">3銆佹帴鍙e疄鐜扮被</strong> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> AccountEmailServiceImpl<br />    </span><span style="color: #0000ff">implements</span><span style="color: #000000"> AccountEmailService<br />{<br />    </span><span style="color: #008000">//</span><span style="color: #008000">spring framework涓府鍔╅偖浠跺彂閫佸伐鍏風被</span><span style="color: #008000"><br /></span><span style="color: #000000">    </span><span style="color: #0000ff">private</span><span style="color: #000000"> JavaMailSender javaMailSender;<br /><br />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> String systemEmail;<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> sendMail( String to, String subject, String htmlText )<br />        </span><span style="color: #0000ff">throws</span><span style="color: #000000"> AccountEmailException<br />    {<br />        </span><span style="color: #0000ff">try</span><span style="color: #000000"><br />        {<br />            </span><span style="color: #008000">//</span><span style="color: #008000">msg瀵瑰簲鐫灝嗚鍙戦佺殑閭歡</span><span style="color: #008000"><br /></span><span style="color: #000000">            MimeMessage msg </span><span style="color: #000000">=</span><span style="color: #000000"> javaMailSender.createMimeMessage();<br />            </span><span style="color: #008000">//</span><span style="color: #008000">甯姪璁劇疆閭歡msg鐩稿叧淇℃伅</span><span style="color: #008000"><br /></span><span style="color: #000000">            MimeMessageHelper msgHelper </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> MimeMessageHelper( msg );<br />            </span><span style="color: #008000">//</span><span style="color: #008000">systemEmail 緋葷粺閭璁劇疆</span><span style="color: #008000"><br /></span><span style="color: #000000">            msgHelper.setFrom( systemEmail );<br />            msgHelper.setTo( to );<br />            msgHelper.setSubject( subject );<br />            </span><span style="color: #008000">//</span><span style="color: #008000">true琛ㄧず閭歡鍐呭涓篽tml鏍煎紡</span><span style="color: #008000"><br /></span><span style="color: #000000">            msgHelper.setText( htmlText, </span><span style="color: #0000ff">true</span><span style="color: #000000"> );<br /><br />            javaMailSender.send( msg );<br />        }<br />        </span><span style="color: #0000ff">catch</span><span style="color: #000000"> ( MessagingException e )<br />        {<br />            </span><span style="color: #0000ff">throw</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> AccountEmailException( </span><span style="color: #000000">"</span><span style="color: #000000">Faild to send mail.</span><span style="color: #000000">"</span><span style="color: #000000">, e );<br />        }<br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> JavaMailSender getJavaMailSender()<br />    {<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> javaMailSender;<br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setJavaMailSender( JavaMailSender javaMailSender )<br />    {<br />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.javaMailSender </span><span style="color: #000000">=</span><span style="color: #000000"> javaMailSender;<br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getSystemEmail()<br />    {<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> systemEmail;<br />    }<br /><br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setSystemEmail( String systemEmail )<br />    {<br />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.systemEmail </span><span style="color: #000000">=</span><span style="color: #000000"> systemEmail;<br />    }<br />}</span></div><br /><br /><strong style="color: #ff0000">4銆佹祴璇曠被</strong><strong><br /></strong><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> AccountEmailServiceTest<br />{<br />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> GreenMail greenMail;<br /><br />    @Before<br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> startMailServer()<br />        </span><span style="color: #0000ff">throws</span><span style="color: #000000"> Exception<br />    {<br />        greenMail </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> GreenMail( ServerSetup.SMTP );<br />        greenMail.setUser( </span><span style="color: #000000">"</span><span style="color: #000000">lanjh</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">******</span><span style="color: #000000">"</span><span style="color: #000000"> );<br />        greenMail.start();<br />    }<br /><br />    @Test<br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> testSendMail()<br />        </span><span style="color: #0000ff">throws</span><span style="color: #000000"> Exception<br />    {<br />        ApplicationContext ctx </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ClassPathXmlApplicationContext( </span><span style="color: #000000">"</span><span style="color: #000000">account-email.xml</span><span style="color: #000000">"</span><span style="color: #000000"> );<br />        AccountEmailService accountEmailService </span><span style="color: #000000">=</span><span style="color: #000000"> (AccountEmailService) ctx.getBean( </span><span style="color: #000000">"</span><span style="color: #000000">accountEmailService</span><span style="color: #000000">"</span><span style="color: #000000"> );<br /><br />        String subject </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Test Subject</span><span style="color: #000000">"</span><span style="color: #000000">;<br />        String htmlText </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000"><h3>Test</h3></span><span style="color: #000000">"</span><span style="color: #000000">;<br />        accountEmailService.sendMail( </span><span style="color: #000000">"</span><span style="color: #000000">275581963@qq.com</span><span style="color: #000000">"</span><span style="color: #000000">, subject, htmlText );<br /><br />        greenMail.waitForIncomingEmail( </span><span style="color: #000000">2000</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000"> );<br /><br />        Message[] msgs </span><span style="color: #000000">=</span><span style="color: #000000"> greenMail.getReceivedMessages();<br />        assertEquals( </span><span style="color: #000000">1</span><span style="color: #000000">, msgs.length );<br />        assertEquals( </span><span style="color: #000000">"</span><span style="color: #000000">lanjh@chinalmtc.com</span><span style="color: #000000">"</span><span style="color: #000000">, msgs[</span><span style="color: #000000">0</span><span style="color: #000000">].getFrom()[</span><span style="color: #000000">0</span><span style="color: #000000">].toString() );<br />        assertEquals( subject, msgs[</span><span style="color: #000000">0</span><span style="color: #000000">].getSubject() );<br />        assertEquals( htmlText, GreenMailUtil.getBody( msgs[</span><span style="color: #000000">0</span><span style="color: #000000">] ).trim() );<br />    }<br /><br />    @After<br />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> stopMailServer()<br />        </span><span style="color: #0000ff">throws</span><span style="color: #000000"> Exception<br />    {<br />        greenMail.stop();<br />    }<br />}<br /></span></div><br />5銆佺浉鍏抽厤緗枃浠?br /><br />account-mail.xml<br /><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff"><?</span><span style="color: #ff00ff">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff">?></span><span style="color: #000000"><br /></span><span style="color: #0000ff"><</span><span style="color: #800000">beans </span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans"</span><span style="color: #ff0000"><br />    xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000"><br />    xsi:schemaLocation</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans<br />http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /><br />    </span><span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="propertyConfigurer"</span><span style="color: #ff0000"><br />        class</span><span style="color: #0000ff">="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"</span><span style="color: #0000ff">></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="location"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="classpath:account-service.properties"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />    </span><span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span><span style="color: #000000"><br /><br />    </span><span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="javaMailSender"</span><span style="color: #ff0000"> class</span><span style="color: #0000ff">="org.springframework.mail.javamail.JavaMailSenderImpl"</span><span style="color: #0000ff">></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="protocol"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${email.protocol}"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="host"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${email.host}"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="port"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${email.port}"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="username"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${email.username}"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="password"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${email.password}"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javaMailProperties"</span><span style="color: #0000ff">></span><span style="color: #000000"><br />            </span><span style="color: #0000ff"><</span><span style="color: #800000">props</span><span style="color: #0000ff">></span><span style="color: #000000"><br />                </span><span style="color: #0000ff"><</span><span style="color: #800000">prop </span><span style="color: #ff0000">key</span><span style="color: #0000ff">="mail.${email.protocol}.auth"</span><span style="color: #0000ff">></span><span style="color: #000000">${email.auth}</span><span style="color: #0000ff"></</span><span style="color: #800000">prop</span><span style="color: #0000ff">></span><span style="color: #000000"><br />            </span><span style="color: #0000ff"></</span><span style="color: #800000">props</span><span style="color: #0000ff">></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"></</span><span style="color: #800000">property</span><span style="color: #0000ff">></span><span style="color: #000000"><br />    </span><span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span><span style="color: #000000"><br /><br />    </span><span style="color: #0000ff"><</span><span style="color: #800000">bean </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="accountEmailService"</span><span style="color: #ff0000"><br />        class</span><span style="color: #0000ff">="com.juvenxu.mvnbook.account.email.AccountEmailServiceImpl"</span><span style="color: #0000ff">></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javaMailSender"</span><span style="color: #ff0000"> ref</span><span style="color: #0000ff">="javaMailSender"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />        </span><span style="color: #0000ff"><</span><span style="color: #800000">property </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="systemEmail"</span><span style="color: #ff0000"> value</span><span style="color: #0000ff">="${email.systemEmail}"</span><span style="color: #ff0000"> </span><span style="color: #0000ff">/></span><span style="color: #000000"><br />    </span><span style="color: #0000ff"></</span><span style="color: #800000">bean</span><span style="color: #0000ff">></span><span style="color: #000000"><br /></span><span style="color: #0000ff"></</span><span style="color: #800000">beans</span><span style="color: #0000ff">></span><span style="color: #000000"><br /></span></div><br />account-service.properties<br /><br />email.protocol=smtp<br />email.host=localhost<br />email.port=25<br />email.username=lanjh<br />email.password=*****<br />email.auth=true<br /><a href="mailto:email.systemEmail=lanjh@chinalmtc.com">email.systemEmail=lanjh@chinalmtc.com</a><br /><br /><br />greenmail  api鍙傝?br /><a >http://www.icegreen.com/greenmail/javadocs/overview-summary.html</a> <img src ="http://www.tkk7.com/vjame/aggbug/356483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/vjame/" target="_blank">lanjh</a> 2011-08-14 11:15 <a href="http://www.tkk7.com/vjame/archive/2011/08/14/greenmail.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>NetUtil 緗戠粶鏈嶅姟鍣ㄧ鍙h緟鍔╃被http://www.tkk7.com/vjame/archive/2009/07/28/288769.htmllanjhlanjhTue, 28 Jul 2009 09:01:00 GMThttp://www.tkk7.com/vjame/archive/2009/07/28/288769.htmlhttp://www.tkk7.com/vjame/comments/288769.htmlhttp://www.tkk7.com/vjame/archive/2009/07/28/288769.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/288769.htmlhttp://www.tkk7.com/vjame/services/trackbacks/288769.html
package com.strongit.emp.common.utils;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;


//TODO doc
public class NetUtil {

    
public static boolean telnetStringPort(String ip, String port, int timeout) {
        
if (port == null || !isValidPort(port)) {
            
return NetUtil.ping(ip, timeout);
        }

        
return NetUtil.telnet(ip, Integer.valueOf(port.trim()).intValue(),
                timeout);
    }

    
public static boolean ping(String ip, int timeout) {
        AssertUtil.assertNull(
"IP is null.", ip);
        
        
try {
            
return InetAddress.getByName(ip.trim()).isReachable(timeout);
        } 
catch (UnknownHostException e) {
            System.err.println(
"UnknownHostException:" + e.getMessage());
            
return false;
        } 
catch (IOException e) {
            System.err.println(
"IOException:" + e.getMessage());
            
return false;
        }
    }

    
public static boolean telnet(String ip, int port, int timeout) {
        AssertUtil.assertNull(
"IP is null.", ip);
        
        Socket server 
= null;
        
try {
            server 
= new Socket();
            server.connect(
new InetSocketAddress(ip.trim(), port), timeout);
            
return true;
        } 
catch (UnknownHostException e) {
            System.err.println(
"UnknownHostException:" + e.getMessage());
            
return false;
        } 
catch (IOException e) {
            System.err.println(
"IOException:" + e.getMessage());
            
return false;
        } 
finally {
            
if (server != null)
                
try {
                    server.close();
                } 
catch (IOException e) {
                    
                }
        }
    }

    
public static boolean isValidPort(String port) {
        
if (port != null && port.trim().matches("^[1-9][0-9]{0,3}$|^[1-5][0-9]{0,4}$|^6[0-5]{2}[0-3][0-5]$")) {
            
int portInt = Integer.valueOf(port.trim()).intValue();
            
if(portInt > 0 && portInt <= 0xFFFFreturn true;
        }

        
return false;
    }
    
    
public static void main(String arg[]){
        
boolean b = telnetStringPort("192.168.50.181","10242",1);
        
        System.out.println(b);
    }
}


lanjh 2009-07-28 17:01 鍙戣〃璇勮
]]>
浠庣綉欏典腑鎻愬彇鐢?shù)瀛愰偖绠卞湴鍧http://www.tkk7.com/vjame/archive/2009/02/09/253895.htmllanjhlanjhMon, 09 Feb 2009 05:25:00 GMThttp://www.tkk7.com/vjame/archive/2009/02/09/253895.htmlhttp://www.tkk7.com/vjame/comments/253895.htmlhttp://www.tkk7.com/vjame/archive/2009/02/09/253895.html#Feedback1http://www.tkk7.com/vjame/comments/commentRss/253895.htmlhttp://www.tkk7.com/vjame/services/trackbacks/253895.htmlimport java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class EmailSpider {

    
public static void main(String[] args) {
        
try {
            BufferedReader br 
= new BufferedReader(new FileReader("D:\\share\\courseware\\1043633.html"));
            String line 
= "";
            
while((line=br.readLine()) != null) {
                parse(line);
            }
        } 
catch (FileNotFoundException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch (IOException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    
private static void parse(String line) {
        Pattern p 
= Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
        Matcher m 
= p.matcher(line);
        
while(m.find()) {
            System.out.println(m.group());
        }
    }

}


lanjh 2009-02-09 13:25 鍙戣〃璇勮
]]>
浠g爜緇熻http://www.tkk7.com/vjame/archive/2009/02/09/253894.htmllanjhlanjhMon, 09 Feb 2009 05:23:00 GMThttp://www.tkk7.com/vjame/archive/2009/02/09/253894.htmlhttp://www.tkk7.com/vjame/comments/253894.htmlhttp://www.tkk7.com/vjame/archive/2009/02/09/253894.html#Feedback5http://www.tkk7.com/vjame/comments/commentRss/253894.htmlhttp://www.tkk7.com/vjame/services/trackbacks/253894.htmlimport java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class CodeCounter {
    
    
static long normalLines = 0;
    
static long commentLines = 0;
    
static long whiteLines = 0;
    
    
public static void main(String[] args) {
        File f 
= new File("D:\\share\\JavaProjects\\TankWar1.9.11\\src");
        File[] codeFiles 
= f.listFiles();
        
for(File child : codeFiles){
            
if(child.getName().matches(".*\\.java$")) {
                parse(child);
            }
        }
        
        System.out.println(
"normalLines:" + normalLines);
        System.out.println(
"commentLines:" + commentLines);
        System.out.println(
"whiteLines:" + whiteLines);
        
    }

    
private static void parse(File f) {
        BufferedReader br 
= null;
        
boolean comment = false;
        
try {
            br 
= new BufferedReader(new FileReader(f));
            String line 
= "";
            
while((line = br.readLine()) != null) {
                line 
= line.trim();
                
if(line.matches("^[\\s&&[^\\n]]*$")) {
                    whiteLines 
++;
                } 
else if (line.startsWith("/*"&& !line.endsWith("*/")) {
                    commentLines 
++;
                    comment 
= true;    
                } 
else if (line.startsWith("/*"&& line.endsWith("*/")) {
                    commentLines 
++;
                } 
else if (true == comment) {
                    commentLines 
++;
                    
if(line.endsWith("*/")) {
                        comment 
= false;
                    }
                } 
else if (line.startsWith("//")) {
                    commentLines 
++;
                } 
else {
                    normalLines 
++;
                }
            }
        } 
catch (FileNotFoundException e) {
            e.printStackTrace();
        } 
catch (IOException e) {
            e.printStackTrace();
        } 
finally {
            
if(br != null) {
                
try {
                    br.close();
                    br 
= null;
                } 
catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}


lanjh 2009-02-09 13:23 鍙戣〃璇勮
]]>
浣跨敤Java Service Wrapper宸ュ叿鎶奐ava紼嬪簭鎻愬崌涓篧indows緋葷粺鏈嶅姟http://www.tkk7.com/vjame/archive/2009/01/12/250932.htmllanjhlanjhMon, 12 Jan 2009 02:46:00 GMThttp://www.tkk7.com/vjame/archive/2009/01/12/250932.htmlhttp://www.tkk7.com/vjame/comments/250932.htmlhttp://www.tkk7.com/vjame/archive/2009/01/12/250932.html#Feedback1http://www.tkk7.com/vjame/comments/commentRss/250932.htmlhttp://www.tkk7.com/vjame/services/trackbacks/250932.html鍦ㄤ嬌鐢ㄤ箣鍓嶉渶涓嬭澆Java Service Wrapper鐨勫彂甯冨寘

http://sourceforge.net/project/showfiles.php?group_id=39428


涓嬮潰綆鍗曚粙緇嶄竴涓嬪叿浣撶殑浣跨敤姝ラ錛?/span>

1.  灝嗕笅杞界殑Java Service Wrapper鍖呰В鍘嬪埌鏈湴錛岀洰褰曚負{WRAPPER_HOME}錛?/span>
2.  
鏈嶅姟搴旂敤紼嬪簭鍚嶄負MyServApp錛屽湪鐩綍d:"MyServApp涓嬪緩绔?/span>bin銆?/span>conf銆?/span>logs銆?/span>lib鐩綍錛涘茍鎶婁綘鐨勫凡鏈夊簲鐢ㄧ▼搴忓NioBlockingServer.class鎷瘋礉鍒拌鐩綍涓嬶紱
3.  
灝?/span>{WRAPPER_HOME}"src"bin"涓嬬殑閬椾互涓嬫枃浠舵嫹璐濆埌MyServApp鐩綍涓嬶紝騫墮噸鍛藉悕銆?/span>
{WRAPPER_HOME}"bin"Wrapper.exe C:" MyServApp "bin"Wrapper.exe
à
 C:"
à{WRAPPER_HOME}"src"bin"App.bat.in MyServApp"bin"MyApp.bat
 C:"
à{WRAPPER_HOME}"src"bin"InstallApp-NT.bat.in MyServApp"bin"InstallMyApp-NT.bat
{WRAPPER_HOME}"src"bin"UninstallApp-NT.bat.in C:" MyServApp"bin"UninstallMyApp-NT.bat
à
4.  
灝?/span>{WRAPPER_HOME}"lib涓嬬殑浠ヤ笅鏂囦歡鎷瘋礉鍒?/span>C:" MyServApp "lib鐩綍涓?/span>
{WRAPPER_HOME}"lib"Wrapper.DLL
{WRAPPER_HOME}"lib"wrapper.jar
5.  
灝?/span>{WRAPPER_HOME}"src"conf"wrapper.conf.in鎷瘋礉鍒?/span>C:" MyServApp "conf鐩綍涓嬪茍鍛藉悕涓?/span>wrapper.conf錛涘茍淇敼wrapper.conf鏂囦歡錛屽湪鍏朵腑閰嶇疆鎮(zhèn)ㄧ殑搴旂敤鏈嶅姟銆?/span>
涓昏淇敼浠ヤ笅鍑犻」鍗沖彲錛?/span>
#
浣犵殑JVM浣嶇疆錛?/span>
wrapper.java.command=D:"Sun"j2sdk1.4.0_03"bin"java
#
榪愯鍙傛暟錛氬錛?/span>
wrapper.java.additional.1=-Dprogram.name=run.bat
#classpath
錛?/span>
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../bin/.
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib
#MAIN CLASS
姝ゅ鍐沖畾浜嗕嬌鐢?/span>Java Service Wrapper鐨勬柟寮?/span>
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
#
浣犵殑Java搴旂敤綾?/span>
wrapper.app.parameter.1= NonBlockingServer
#
鏈嶅姟鍚?/span>
wrapper.ntservice.name=NB

# Display name of the service
wrapper.ntservice.displayname=Nio Nonblocking Server
#
鏈嶅姟鎻忚堪
wrapper.ntservice.description=Nio Nonblocking Server
鍏朵粬鐨勯厤緗牴鎹綘鐨勯渶瑕佹敼鍙樺嵆鍙?/span>
6.  
瀵逛互涓婇厤緗殑MyApp.bat榪涜嫻嬭瘯錛岃繍琛?/span>MyApp.bat錛屽氨鍍忓湪Console紿楀彛涓嬭繍琛?/span>Tomcat涓鏍鳳紱
7.  
瀵逛互涓婇厤緗殑鏈嶅姟榪涜嫻嬭瘯錛岃繍琛?/span>C:" MyServApp"bin"InstallMyApp-NT.bat灝嗘妸浣犵殑搴旂敤錛堟澶勪負NioBlockingServer錛夊畨瑁呭埌Win32緋葷粺鏈嶅姟涓簡銆?/span>
8.  
鎵撳紑鎺у埗闈㈡澘錛嶇鐞嗙▼搴忥紞鏈嶅姟錛岀湅鍒?/span>Nio Nonblocking Server宸茬粡鍦ㄧ郴緇熸湇鍔′腑浜嗭紝鍏朵粬鐢ㄦ硶灝變笌鎴戜滑鐔熸?zhèn)夌?/span>Windows鏈嶅姟涓鏍蜂簡銆?/span>

 

鎶?/span>JAVA紼嬪簭閮ㄧ講涓?/span>Windows Service闇瑕佷慨鏀圭殑鎿嶄綔

1.鎶?/span>JAVA紼嬪簭鎵鐢ㄥ埌鐨?/span>Class鎷峰埌bin鐩綍涓?/span>;鎵鏈?/span>jar鑰冨埌lib鐩綍

2.淇敼config/wrapper.conf 鏂囦歡

       1)淇敼JDK瀹夎璺緞 :wrapper.java.command=C:"jdk1.5.0"bin"java

       2)淇敼classpath:wrapper.java.classpath.2=../bin/.

       3)淇敼瑕佸惎鍔ㄧ殑JAVA綾?/span>:wrapper.app.parameter.1= HelloWorld

       4)淇敼鏈嶅姟鍚嶇О:wrapper.ntservice.name=MyJavaService

       5)淇敼"鏈嶅姟"閲屾樉紺虹殑鍚嶇О:wrapper.ntservice.displayname=MyJavaService

       6)鏈嶅姟璇存槑:wrapper.ntservice.description=MyJavaService Test

bin/StartApp.bat    涓烘帶鍒跺彴鏂瑰紡榪愯紼嬪簭

bin/InstallApp-NT.bat  瀹夎鏈嶅姟

bin/UninstallApp-NT.bat 鍒犻櫎鏈嶅姟

鎶婇」鐩腑鐨勬帴鏀剁▼搴忔彁鍗囦負緋葷粺鏈嶅姟

config/wrapper.conf 鏂囦歡

#********************************************************************

# Wrapper Properties

#********************************************************************

# Java Application

wrapper.java.command=java

# Java Main class. This class must implement the WrapperListener interface

# or guarantee that the WrapperManager class is initialized. Helper

# classes are provided to do this for you. See the Integration section

# of the documentation for details.

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath (include wrapper.jar) Add class path elements as

# needed starting from 1

wrapper.java.classpath.1=../lib/wrapper.jar

wrapper.java.classpath.2=../lib/wrappertest.jar

wrapper.java.classpath.3=../bin/.

wrapper.java.classpath.4=../lib/jaxen-1.1-beta-7.jar

wrapper.java.classpath.5=../lib/tlclient.jar

wrapper.java.classpath.6=../lib/tlqadapter.jar

wrapper.java.classpath.7=../lib/tlqconf.jar

wrapper.java.classpath.8=../lib/TlqMng.jar

wrapper.java.classpath.9=../lib/weblogic.jar

wrapper.java.classpath.10=../lib/jms.jar

wrapper.java.classpath.11=../lib/log4j-1.2.8.jar

wrapper.java.classpath.12=../lib/swt.jar

wrapper.java.classpath.13=../lib/javax.jms.jar

wrapper.java.classpath.14=../lib/jaxrpc.jar

wrapper.java.classpath.15=../lib/commons-discovery-0.2.jar

wrapper.java.classpath.16=../lib/commons-logging-1.0.4.jar

wrapper.java.classpath.17=../lib/dom4j-1.6.1.jar

# Java Library Path (location of Wrapper.DLL or libwrapper.so)

wrapper.java.library.path.1=../lib

# Java Additional Parameters

#wrapper.java.additional.1= -Dprogram.name=StartApp.bat

# Initial Java Heap Size (in MB)

#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)

#wrapper.java.maxmemory=64

# Application parameters. Add parameters as needed starting from 1

wrapper.app.parameter.1= MainTest

#********************************************************************

# Wrapper Logging Properties

#********************************************************************

# Format of output for the console. (See docs for formats)

wrapper.console.format=PM

# Log Level for console output. (See docs for log levels)

wrapper.console.loglevel=INFO

# Log file to use for wrapper output logging.

wrapper.logfile=../logs/log.log

# Format of output for the log file. (See docs for formats)

wrapper.logfile.format=LPTM

# Log Level for log file output. (See docs for log levels)

wrapper.logfile.loglevel=INFO

# Maximum size that the log file will be allowed to grow to before

# the log is rolled. Size is specified in bytes. The default value

# of 0, disables log rolling. May abbreviate with the 'k' (kb) or

# 'm' (mb) suffix. For example: 10m = 10 megabytes.

wrapper.logfile.maxsize=0

# Maximum number of rolled log files which will be allowed before old

# files are deleted. The default value of 0 implies no limit.

wrapper.logfile.maxfiles=0

# Log Level for sys/event log output. (See docs for log levels)

wrapper.syslog.loglevel=NONE

#********************************************************************

# Wrapper Windows Properties

#********************************************************************

# Title to use when running as a console

wrapper.console.title=MyJavaService

#********************************************************************

# Wrapper Windows NT/2000/XP Service Properties

#********************************************************************

# WARNING - Do not modify any of these properties when an application

# using this configuration file has been installed as a service.

# Please uninstall the service before modifying this section. The

# service can then be reinstalled.

# Name of the service

wrapper.ntservice.name=MyJavaService

# Display name of the service

wrapper.ntservice.displayname=MyJavaService

# Description of the service

wrapper.ntservice.description=MyJavaService Test

# Service dependencies. Add dependencies as needed starting from 1

wrapper.ntservice.dependency.1=

# Mode in which the service is installed. AUTO_START or DEMAND_START

wrapper.ntservice.starttype=AUTO_START

# Allow the service to interact with the desktop.

wrapper.ntservice.interactive=false

閲囩敤榪欑鏂瑰紡錛屽嵆鍙畝鍗曟湁鏁堢殑鎶婃垜浠殑鏈嶅姟紼嬪簭鍖呰鎴愪負緋葷粺鏈嶅姟紼嬪簭錛屽茍澧炲己浜嗘棩蹇楀姛鑳斤紝鎴戜滑鍙互鎶奙yServApp鐨勫嚑涓枃浠跺仛鎴愭ā鏉匡紝姣忔淇敼鏂囦歡鍚嶏紝閰嶇疆鏂囦歡灝卞彲浠ヤ簡錛岃繕鍙互鍋氭垚Eclipse鐨刾lugin錛岄紶鏍囩偣鐐瑰氨鎶婂簲鐢ㄩ厤鎴愭湇鍔′簡銆?nbsp;



lanjh 2009-01-12 10:46 鍙戣〃璇勮
]]>
SWT Table鐨凾ableitem澶氳鏄劇ず http://www.tkk7.com/vjame/archive/2009/01/10/250777.htmllanjhlanjhSat, 10 Jan 2009 01:40:00 GMThttp://www.tkk7.com/vjame/archive/2009/01/10/250777.htmlhttp://www.tkk7.com/vjame/comments/250777.htmlhttp://www.tkk7.com/vjame/archive/2009/01/10/250777.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/250777.htmlhttp://www.tkk7.com/vjame/services/trackbacks/250777.html
        Listener paintListener = new Listener() {
            
public void handleEvent(Event event) {
                
switch(event.type) {        
                    
case SWT.MeasureItem: {
                        TableItem item 
= (TableItem)event.item;
                        String text 
= getText(item, event.index);
                        Point size 
= event.gc.textExtent(text);
                        event.width 
= size.x;
                        event.height 
= Math.max(event.height, size.y);
                        
break;
                    }
                    
case SWT.PaintItem: {
                        TableItem item 
= (TableItem)event.item;
                        String text 
= getText(item, event.index);
                        Point size 
= event.gc.textExtent(text);                    
                        
int offset2 = event.index == 0 ? Math.max(0, (event.height - size.y) / 2) : 0;
                        event.gc.drawText(text, event.x, event.y 
+ offset2, true);
                        
break;
                    }
                    
case SWT.EraseItem: {    
                        event.detail 
&= ~SWT.FOREGROUND;
                        
break;
                    }
                }
            }
            String getText(TableItem item, 
int column) {
                
return item.getText(column);
            }
        };
       table.addListener(SWT.MeasureItem, paintListener);
       table.addListener(SWT.PaintItem, paintListener);
       table.addListener(SWT.EraseItem, paintListener);

2. 鎹㈣瑕佽嚜宸卞姞涓?#8220;\n”鍒板瓧絎︿覆涓紝濡?/font>
       TableItem item = new TableItem(table, SWT.NONE, table.getItemCount());
      item.setText(
"first line" + "\n" + "second line");

3.濡傚浘鎵紺?br />


lanjh 2009-01-10 09:40 鍙戣〃璇勮
]]>
Cron 瑙﹀彂鍣?/title><link>http://www.tkk7.com/vjame/archive/2008/12/22/247825.html</link><dc:creator>lanjh</dc:creator><author>lanjh</author><pubDate>Mon, 22 Dec 2008 13:28:00 GMT</pubDate><guid>http://www.tkk7.com/vjame/archive/2008/12/22/247825.html</guid><wfw:comment>http://www.tkk7.com/vjame/comments/247825.html</wfw:comment><comments>http://www.tkk7.com/vjame/archive/2008/12/22/247825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/vjame/comments/commentRss/247825.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/vjame/services/trackbacks/247825.html</trackback:ping><description><![CDATA[     鎽樿: 涓涓猚ron琛ㄨ揪寮忔湁鑷沖皯6涓紙涔熷彲鑳芥槸7涓級鐢辯┖鏍煎垎闅旂殑鏃墮棿鍏冪礌銆備粠宸﹁嚦鍙籌紝榪欎簺鍏冪礌鐨勫畾涔夊涓嬶細 1錛庣錛?–59錛?2錛庡垎閽燂紙0–59錛?3錛庡皬鏃訛紙0–23錛?4錛庢湀浠戒腑鐨勬棩鏈燂紙1–31錛?5錛庢湀浠斤紙1–12鎴朖AN–DEC錛?6錛庢槦鏈熶腑鐨勬棩鏈燂紙1–7鎴朣UN–SAT錛?7錛庡勾浠斤紙197...  <a href='http://www.tkk7.com/vjame/archive/2008/12/22/247825.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/vjame/aggbug/247825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/vjame/" target="_blank">lanjh</a> 2008-12-22 21:28 <a href="http://www.tkk7.com/vjame/archive/2008/12/22/247825.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>楂樻ц兘閿丷eentrantReadWriteLockhttp://www.tkk7.com/vjame/archive/2008/12/22/247761.htmllanjhlanjhMon, 22 Dec 2008 06:57:00 GMThttp://www.tkk7.com/vjame/archive/2008/12/22/247761.htmlhttp://www.tkk7.com/vjame/comments/247761.htmlhttp://www.tkk7.com/vjame/archive/2008/12/22/247761.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/247761.htmlhttp://www.tkk7.com/vjame/services/trackbacks/247761.html澶氱嚎紼嬭鍙栧茍淇敼涓涓祫婧愭椂錛岄氬父浣跨敤synchronized鍚屾閿併傛ц兘鎹熷け鎯呭喌寰堜弗閲嶃俲dk5.0浠ュ悗鎻愪緵浜嗘柊鐨凴eentrantReadWriteLock鍙互鎻愪緵姣攕ynchronized鏇撮珮鎬ц兘鐨勫茍鍙戙?/font>

Dictionary.java
package com.test;

import java.util.HashMap;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;

public class Dictionary {

    
private final ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock();

    
private final Lock read = readWriteLock.readLock();

    
private final Lock write = readWriteLock.writeLock();

    
private HashMap<String, String> dictionary = new HashMap<String, String>();

    
public void set(String key, String value) {
        write.lock();
        
try {
            dictionary.put(key, value);
        } 
finally {
            write.unlock();
        }
    }

    
public String get(String key) {
        read.lock();
        
try {
            
return dictionary.get(key);
        } 
finally {
            read.unlock();
        }
    }

    
public String[] getKeys() {
        read.lock();
        
try {
            String keys[] 
= new String[dictionary.size()];
            
return dictionary.keySet().toArray(keys);
        } 
finally {
            read.unlock();
        }
    }

    
public static void main(String[] args) {
        Dictionary dictionary 
= new Dictionary();
        dictionary.set(
"java""object oriented");
        dictionary.set(
"linux""rulez");
        
//dictionary.set("C++", "lanjh");
        Writer writer = new Writer(dictionary, "Mr. Writer ");
        
//Writer writer2 = new Writer(dictionary, "Mr. Writer 2");
        Reader reader1 = new Reader(dictionary, "Mrs Reader 1");
        Reader reader2 
= new Reader(dictionary, "Mrs Reader 2");
        Reader reader3 
= new Reader(dictionary, "Mrs Reader 3");
        Reader reader4 
= new Reader(dictionary, "Mrs Reader 4");
        Reader reader5 
= new Reader(dictionary, "Mrs Reader 5");
        writer.start();
        
//writer2.start();
        reader1.start();
        reader2.start();
        reader3.start();
        reader4.start();
        reader5.start();
    }
}

Reader.java
package com.test;

public class Reader extends Thread{
       
       
private Dictionary dictionary = null;
       
public Reader(Dictionary d, String threadName) {
         
this.dictionary = d;
         
this.setName(threadName);
       }
       
       
private boolean runForestRun = true;

       
public void run() {
         
while (runForestRun) {
           String [] keys 
= dictionary.getKeys();
           
for (String key : keys) {
             
//reading from dictionary with READ LOCK
             String value = dictionary.get(key);
             
             
//make what ever you want with the value.
             System.out.println(this.getName()+" = "+key + " : " + value);
           }
           
           
//update every seconds
           try {
             Thread.sleep(
1000);
           } 
catch (InterruptedException e) {
             e.printStackTrace();
           }
         }
       }
       
       
public void stopReader(){
         
this.runForestRun = false;
         
this.interrupt();
       }
     }



Writer.java
package com.test;

public class Writer extends Thread{
       
private boolean runForestRun = true;
       
private Dictionary dictionary = null;
       
       
public Writer(Dictionary d, String threadName) {
         
this.dictionary = d;
         
this.setName(threadName);
       }
       @Override
       
public void run() {
         
while (this.runForestRun) { 
           String [] keys 
= dictionary.getKeys();
           
for (String key : keys) {
             String newValue 
= getNewValueFromDatastore(key);
             
//updating dictionary with WRITE LOCK
             dictionary.set(key, newValue);
             System.out.println(
this.getName()+" = "+key + " : " + newValue);

           }
           
           
//update every seconds
           try {
             Thread.sleep(
1000);
           } 
catch (InterruptedException e) {
             e.printStackTrace();
           }
         }
       }
       
public void stopWriter(){
         
this.runForestRun = false;
         
this.interrupt();
       }
       
public String getNewValueFromDatastore(String key){
         
//This part is not implemented. Out of scope of this artile
         return key;
       }
     }





lanjh 2008-12-22 14:57 鍙戣〃璇勮
]]>
Jxcellhttp://www.tkk7.com/vjame/archive/2008/12/17/246857.htmllanjhlanjhWed, 17 Dec 2008 06:15:00 GMThttp://www.tkk7.com/vjame/archive/2008/12/17/246857.htmlhttp://www.tkk7.com/vjame/comments/246857.htmlhttp://www.tkk7.com/vjame/archive/2008/12/17/246857.html#Feedback1http://www.tkk7.com/vjame/comments/commentRss/246857.htmlhttp://www.tkk7.com/vjame/services/trackbacks/246857.htmlDescription:

Jxcell  is a high performance spreadsheet component for java development environments that allows you to create, manipulate, and print excel worksheets.

Jxcell contains the tools needed to store, analyze, manipulate, and present  your data in excel.

Jxcell directly using excel document format, support formulae, images, lines, chart. 

Download Jxcell. (1950kb) ,containing examples of code

run Jxcell:
java -cp jxcell.jar com.jxcell.designer.Designer

 run environment錛?/p>

JDK1.3 and above version

screenshot




lanjh 2008-12-17 14:15 鍙戣〃璇勮
]]>
Java鐨勫崟綰跨▼Socket閫氫俊http://www.tkk7.com/vjame/archive/2008/12/11/245774.htmllanjhlanjhThu, 11 Dec 2008 11:23:00 GMThttp://www.tkk7.com/vjame/archive/2008/12/11/245774.htmlhttp://www.tkk7.com/vjame/comments/245774.htmlhttp://www.tkk7.com/vjame/archive/2008/12/11/245774.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/245774.htmlhttp://www.tkk7.com/vjame/services/trackbacks/245774.html
import java.io.BufferedReader;    
import java.io.IOException;    
import java.io.InputStreamReader;    
import java.io.PrintWriter;    
import java.net.ServerSocket;    
import java.net.Socket;    
   
public class ServerSocket {    
   
    
public static void main(String[] args) {    
        
try {    
            createServerSocket();    
        } 
catch (IOException e) {    
            
// TODO Auto-generated catch block    
            e.printStackTrace();    
        }    
    }    
   
    
private static void createServerSocket() throws IOException {    
        ServerSocket serverSocket 
= new ServerSocket(8189);    
        Socket socket 
= serverSocket.accept();// wait for client connection    
        while (true) {    
            BufferedReader in 
= new BufferedReader(new InputStreamReader(socket    
                    .getInputStream()));    
            PrintWriter out 
= new PrintWriter(socket.getOutputStream());    
            
while (true) {    
                String str 
= in.readLine();    
                System.out.println(
"server:" + str);    
                out.println(
"client receive" + str);    
                out.flush();    
                
if (str.equals("exit"))    
                    
break;    
            }    
            socket.close();    
   
        }    
    }    
   
}    

瀹㈡埛绔細
import java.io.BufferedReader;    
import java.io.IOException;    
import java.io.InputStream;    
import java.io.InputStreamReader;    
import java.io.OutputStream;    
import java.io.PrintWriter;    
import java.net.Socket;    
import java.net.UnknownHostException;    
import java.util.Scanner;    
   
   
public class ClientSocket {    
    
private static final String URL = "localhost";    
   
    
private static final int PORT = 8189;    
   
   
    
/**   
     * create client socket   
     *    
     * 
@throws IOException   
     * 
@throws UnknownHostException   
     *    
     
*/   
    
private static void createClientSocket() throws UnknownHostException,    
            IOException {    
        Socket clientSocket 
= new Socket(URL, PORT);    
        BufferedReader in 
= new BufferedReader(new InputStreamReader(    
                clientSocket.getInputStream()));    
        PrintWriter out 
= new PrintWriter(clientSocket.getOutputStream());    
        BufferedReader wt 
= new BufferedReader(new InputStreamReader(System.in));    
        
while (true) {    
            String str 
= wt.readLine();    
            out.println(
"client send:" + str);    
            out.flush();    
            
if (str.equals("end")) {    
                
break;    
            }    
            System.out.println(in.readLine());    
        }    
        clientSocket.close();    
   
    }    
   
    
public static void main(String[] args) {    
   
        
try {    
            createClientSocket();    
        } 
catch (UnknownHostException e) {    
            
// TODO Auto-generated catch block    
            e.printStackTrace();    
        } 
catch (IOException e) {    
            
// TODO Auto-generated catch block    
            e.printStackTrace();    
        }    
    }    
}    


lanjh 2008-12-11 19:23 鍙戣〃璇勮
]]>
Java鍙嶅皠鏈哄埗 http://www.tkk7.com/vjame/archive/2008/10/05/232549.htmllanjhlanjhSun, 05 Oct 2008 12:41:00 GMThttp://www.tkk7.com/vjame/archive/2008/10/05/232549.htmlhttp://www.tkk7.com/vjame/comments/232549.htmlhttp://www.tkk7.com/vjame/archive/2008/10/05/232549.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/232549.htmlhttp://www.tkk7.com/vjame/services/trackbacks/232549.htmlJava 鐨勫弽灝勬満鍒舵槸浣垮叾鍏鋒湁鍔ㄦ佺壒鎬х殑闈炲父鍏抽敭鐨勪竴縐嶆満鍒訛紝涔熸槸鍦↗avaBean 涓箍娉涘簲鐢ㄧ殑涓縐嶇壒鎬с?br /> 榪愮敤JavaBean 鐨勬渶甯歌鐨勯棶棰樻槸錛氭牴鎹寚瀹氱殑綾誨悕錛岀被瀛楁鍚嶅拰鎵瀵瑰簲鐨勬暟鎹紝寰楀埌璇ョ被鐨勫疄渚嬶紝涓嬮潰鐨勪竴涓緥瀛愭紨紺轟簡榪欎竴瀹炵幇銆?br /> -|Base.java //鎶借薄鍩虹被
 |Son1.java //鍩虹被鎵╁睍1
 |Son2.java //鍩虹被鎵╁睍2
 |Util.java 
/**
 * @author metaphy
 * create 2005-4-14 9:06:56
 * 璇存槑錛?br />  */
錛?錛塀ase.java 鎶借薄鍩虹被鍙槸涓涓畾涔?br /> public abstract class Base {
}
錛?錛塖on1.java /Son2.java 鏄凡緇忓疄鐜扮殑JavaBean
public class Son1 extends Base{
    private int id ;
    private String name ;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    public void son1Method(String s){
        System.out.println(s) ; 
    }
}
錛?錛?br /> public class Son2 extends Base{
    private int id;
    private double salary;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
}
錛?錛塙til.java 婕旂ず浜嗗浣曟牴鎹寚瀹氱殑綾誨悕錛岀被瀛楁鍚嶅拰鎵瀵瑰簲鐨勬暟鎹紝寰楀埌涓涓被鐨勫疄渚?br /> import java.lang.reflect.Method;
public class Util {
    //姝ゆ柟娉曠殑鏈澶уソ澶勬槸娌℃湁綾誨悕Son1,Son2 鍙互閫氳繃鍙傛暟鏉ユ寚瀹氾紝紼嬪簭閲岄潰鏍規(guī)湰涓嶇敤鍑虹幇
    public static Base convertStr2ServiceBean(String beanName,String fieldSetter,String paraValue){
        Base base = null ; 
        try {
            Class cls = Class.forName(beanName) ;
            base = (Base)cls.newInstance() ;
            Class[] paraTypes = new Class[]{String.class };
            Method method = cls.getMethod(fieldSetter, paraTypes) ;
            String[] paraValues = new String[]{paraValue} ;
            method.invoke(base, paraValues) ;
        } catch (Throwable e) {
            System.err.println(e);
        }
        return base ;
    }
    
    
    public static void main(String[] args){
        Son1 son1 =(Son1) Util.convertStr2ServiceBean("trying.reflect.Son1","setName","wang da sha");
        System.out.println("son1.getName() :"+son1.getName())  ;
    }
}
//璋冪敤緇撴灉錛?br /> //son1.getName() :wang da sha

璋㈣阿錛佸笇鏈涜兘緇欏ぇ瀹朵竴鐐瑰惎鍙戯紒
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
闄勶細
//涓嬮潰榪欑瘒鏂囨。鏉ユ簮浜嶪nternet錛屼綔鑰呬笉璇?br /> Reflection 鏄?nbsp;Java 紼嬪簭寮鍙戣璦鐨勭壒寰佷箣涓錛屽畠鍏佽榪愯涓殑 Java 紼嬪簭瀵硅嚜韜繘琛屾鏌ワ紝鎴栬呰“鑷”錛屽茍鑳界洿鎺ユ搷浣滅▼搴忕殑鍐呴儴灞炴с備緥濡傦紝浣跨敤瀹冭兘鑾峰緱 Java 綾諱腑鍚勬垚鍛樼殑鍚嶇О騫舵樉紺哄嚭鏉ャ?br /> Java 鐨勮繖涓鑳藉姏鍦ㄥ疄闄呭簲鐢ㄤ腑涔熻鐢ㄥ緱涓嶆槸寰堝錛屼絾鏄湪鍏跺畠鐨勭▼搴忚璁¤璦涓牴鏈氨涓嶅瓨鍦ㄨ繖涓鐗規(guī)с備緥濡傦紝Pascal銆丆 鎴栬?nbsp;C++ 涓氨娌℃湁鍔炴硶鍦ㄧ▼搴忎腑鑾峰緱鍑芥暟瀹氫箟鐩稿叧鐨勪俊鎭?br /> JavaBean 鏄?nbsp;reflection 鐨勫疄闄呭簲鐢ㄤ箣涓錛屽畠鑳借涓浜涘伐鍏峰彲瑙嗗寲鐨勬搷浣滆蔣浠剁粍浠躲傝繖浜涘伐鍏烽氳繃 reflection 鍔ㄦ佺殑杞藉叆騫跺彇寰?nbsp;Java 緇勪歡(綾? 鐨勫睘鎬с?br /> 1. 涓涓畝鍗曠殑渚嬪瓙
鑰冭檻涓嬮潰榪欎釜綆鍗曠殑渚嬪瓙錛岃鎴戜滑鐪嬬湅 reflection 鏄浣曞伐浣滅殑銆?br /> import java.lang.reflect.*;
public class DumpMethods {
   public static void main(String args[]) {
       try {
           Class c = Class.forName(args[0]);
           Method m[] = c.getDeclaredMethods();
           for (int i = 0; i < m.length; i++)
               System.out.println(m[i].toString());
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
鎸夊涓嬭鍙ユ墽琛岋細
java DumpMethods java.util.Stack
瀹冪殑緇撴灉杈撳嚭涓猴細
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)
榪欐牱灝卞垪鍑轟簡java.util.Stack 綾葷殑鍚勬柟娉曞悕浠ュ強瀹冧滑鐨勯檺鍒剁鍜岃繑鍥炵被鍨嬨?br /> 榪欎釜紼嬪簭浣跨敤 Class.forName 杞藉叆鎸囧畾鐨勭被錛岀劧鍚庤皟鐢?nbsp;getDeclaredMethods 鏉ヨ幏鍙栬繖涓被涓畾涔変簡鐨勬柟娉曞垪琛ㄣ俲ava.lang.reflect.Methods 鏄敤鏉ユ弿榪版煇涓被涓崟涓柟娉曠殑涓涓被銆?br /> 2.寮濮嬩嬌鐢?nbsp;Reflection
鐢ㄤ簬 reflection 鐨勭被錛屽 Method錛屽彲浠ュ湪 java.lang.relfect 鍖呬腑鎵懼埌銆備嬌鐢ㄨ繖浜涚被鐨勬椂鍊欏繀欏昏閬靛驚涓変釜姝ラ錛氱涓姝ユ槸鑾峰緱浣犳兂鎿嶄綔鐨勭被鐨?nbsp;java.lang.Class 瀵硅薄銆傚湪榪愯涓殑 Java 紼嬪簭涓紝鐢?nbsp;java.lang.Class 綾繪潵鎻忚堪綾誨拰鎺ュ彛絳夈?br /> 涓嬮潰灝辨槸鑾峰緱涓涓?nbsp;Class 瀵硅薄鐨勬柟娉曚箣涓錛?br /> Class c = Class.forName("java.lang.String");
榪欐潯璇彞寰楀埌涓涓?nbsp;String 綾葷殑綾誨璞°傝繕鏈夊彟涓縐嶆柟娉曪紝濡備笅闈㈢殑璇彞錛?br /> Class c = int.class;
鎴栬?br /> Class c = Integer.TYPE;
瀹冧滑鍙幏寰楀熀鏈被鍨嬬殑綾諱俊鎭傚叾涓悗涓縐嶆柟娉曚腑璁塊棶鐨勬槸鍩烘湰綾誨瀷鐨勫皝瑁呯被 (濡?nbsp;Integer) 涓鍏堝畾涔夊ソ鐨?nbsp;TYPE 瀛楁銆?br /> 絎簩姝ユ槸璋冪敤璇稿 getDeclaredMethods 鐨勬柟娉曪紝浠ュ彇寰楄綾諱腑瀹氫箟鐨勬墍鏈夋柟娉曠殑鍒楄〃銆?br /> 涓鏃﹀彇寰楄繖涓俊鎭紝灝卞彲浠ヨ繘琛岀涓夋浜嗏斺斾嬌鐢?nbsp;reflection API 鏉ユ搷浣滆繖浜涗俊鎭紝濡備笅闈㈣繖孌典唬鐮侊細
Class c = Class.forName("java.lang.String");
Method m[] = c.getDeclaredMethods();
System.out.println(m[0].toString());
瀹冨皢浠ユ枃鏈柟寮忔墦鍗板嚭 String 涓畾涔夌殑絎竴涓柟娉曠殑鍘熷瀷銆?br /> 鍦ㄤ笅闈㈢殑渚嬪瓙涓紝榪欎笁涓楠ゅ皢涓轟嬌鐢?nbsp;reflection 澶勭悊鐗規(guī)畩搴旂敤紼嬪簭鎻愪緵渚嬭瘉銆?br /> 妯℃嫙 instanceof 鎿嶄綔絎?br /> 寰楀埌綾諱俊鎭箣鍚庯紝閫氬父涓嬩竴涓楠ゅ氨鏄В鍐沖叧浜?nbsp;Class 瀵硅薄鐨勪竴浜涘熀鏈殑闂銆備緥濡傦紝Class.isInstance 鏂規(guī)硶鍙互鐢ㄤ簬妯℃嫙 instanceof 鎿嶄綔絎︼細
class A {
}
public class instance1 {
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("A");
           boolean b1 = cls.isInstance(new Integer(37));
           System.out.println(b1);
           boolean b2 = cls.isInstance(new A());
           System.out.println(b2);
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
鍦ㄨ繖涓緥瀛愪腑鍒涘緩浜嗕竴涓?nbsp;A 綾葷殑 Class 瀵硅薄錛岀劧鍚庢鏌ヤ竴浜涘璞℃槸鍚︽槸 A 鐨勫疄渚嬨侷nteger(37) 涓嶆槸錛屼絾 new A() 鏄?br /> 3.鎵懼嚭綾葷殑鏂規(guī)硶
鎵懼嚭涓涓被涓畾涔変簡浜涗粈涔堟柟娉曪紝榪欐槸涓涓潪甯告湁浠峰間篃闈炲父鍩虹鐨?nbsp;reflection 鐢ㄦ硶銆備笅闈㈢殑浠g爜灝卞疄鐜頒簡榪欎竴鐢ㄦ硶錛?br /> import java.lang.reflect.*;
public class method1 {
   private int f1(Object p, int x) throws NullPointerException {
       if (p == null)
           throw new NullPointerException();
       return x;
   }
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("method1");
           Method methlist[] = cls.getDeclaredMethods();
           for (int i = 0; i < methlist.length; i++) {
               Method m = methlist[i];
               System.out.println("name = " + m.getName());
               System.out.println("decl class = " + m.getDeclaringClass());
               Class pvec[] = m.getParameterTypes();
               for (int j = 0; j < pvec.length; j++)
                   System.out.println("param #" + j + " " + pvec[j]);
               Class evec[] = m.getExceptionTypes();
               for (int j = 0; j < evec.length; j++)
                   System.out.println("exc #" + j + " " + evec[j]);
               System.out.println("return type = " + m.getReturnType());
               System.out.println("-----");
           }
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
榪欎釜紼嬪簭棣栧厛鍙栧緱 method1 綾葷殑鎻忚堪錛岀劧鍚庤皟鐢?nbsp;getDeclaredMethods 鏉ヨ幏鍙栦竴緋誨垪鐨?nbsp;Method 瀵硅薄錛屽畠浠垎鍒弿榪頒簡瀹氫箟鍦ㄧ被涓殑姣忎竴涓柟娉曪紝鍖呮嫭 public 鏂規(guī)硶銆乸rotected 鏂規(guī)硶銆乸ackage 鏂規(guī)硶鍜?nbsp;private 鏂規(guī)硶絳夈傚鏋滀綘鍦ㄧ▼搴忎腑浣跨敤 getMethods 鏉ヤ唬鏇?nbsp;getDeclaredMethods錛屼綘榪樿兘鑾峰緱緇ф壙鏉ョ殑鍚勪釜鏂規(guī)硶鐨勪俊鎭?br /> 鍙栧緱浜?nbsp;Method 瀵硅薄鍒楄〃涔嬪悗錛岃鏄劇ず榪欎簺鏂規(guī)硶鐨勫弬鏁扮被鍨嬨佸紓甯哥被鍨嬪拰榪斿洖鍊肩被鍨嬬瓑灝變笉闅句簡銆傝繖浜涚被鍨嬫槸鍩烘湰綾誨瀷榪樻槸綾葷被鍨嬶紝閮藉彲浠ョ敱鎻忚堪綾葷殑瀵硅薄鎸夐『搴忕粰鍑恒?br /> 杈撳嚭鐨勭粨鏋滃涓嬶細
name = f1
decl class = class method1
param #0 class java.lang.Object
param #1 int
exc #0 class java.lang.NullPointerException
return type = int
-----
name = main
decl class = class method1
param #0 class [Ljava.lang.String;
return type = void
-----

4.鑾峰彇鏋勯犲櫒淇℃伅
鑾峰彇綾繪瀯閫犲櫒鐨勭敤娉曚笌涓婅堪鑾峰彇鏂規(guī)硶鐨勭敤娉曠被浼鹼紝濡傦細
import java.lang.reflect.*;
public class constructor1 {
   public constructor1() {
   }
   protected constructor1(int i, double d) {
   }
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("constructor1");
           Constructor ctorlist[] = cls.getDeclaredConstructors();
           for (int i = 0; i < ctorlist.length; i++) {
               Constructor ct = ctorlist[i];
               System.out.println("name = " + ct.getName());
               System.out.println("decl class = " + ct.getDeclaringClass());
               Class pvec[] = ct.getParameterTypes();
               for (int j = 0; j < pvec.length; j++)
                   System.out.println("param #" + j + " " + pvec[j]);
               Class evec[] = ct.getExceptionTypes();
               for (int j = 0; j < evec.length; j++)
                   System.out.println("exc #" + j + " " + evec[j]);
               System.out.println("-----");
           }
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
榪欎釜渚嬪瓙涓病鑳借幏寰楄繑鍥炵被鍨嬬殑鐩稿叧淇℃伅錛岄偅鏄洜涓烘瀯閫犲櫒娌℃湁榪斿洖綾誨瀷銆?br /> 榪欎釜紼嬪簭榪愯鐨勭粨鏋滄槸錛?br /> name = constructor1
decl class = class constructor1
-----
name = constructor1
decl class = class constructor1
param #0 int
param #1 double
-----
5.鑾峰彇綾葷殑瀛楁(鍩?
鎵懼嚭涓涓被涓畾涔変簡鍝簺鏁版嵁瀛楁涔熸槸鍙兘鐨勶紝涓嬮潰鐨勪唬鐮佸氨鍦ㄥ共榪欎釜浜嬫儏錛?br />
import java.lang.reflect.*;
public class field1 {
   private double d;
   public static final int i = 37;
   String s = "testing";
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("field1");
           Field fieldlist[] = cls.getDeclaredFields();
           for (int i = 0; i < fieldlist.length; i++) {
               Field fld = fieldlist[i];
               System.out.println("name = " + fld.getName());
               System.out.println("decl class = " + fld.getDeclaringClass());
               System.out.println("type = " + fld.getType());
               int mod = fld.getModifiers();
               System.out.println("modifiers = " + Modifier.toString(mod));
               System.out.println("-----");
           }
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
榪欎釜渚嬪瓙鍜屽墠闈㈤偅涓緥瀛愰潪甯哥浉浼箋備緥涓嬌鐢ㄤ簡涓涓柊涓滆タ Modifier錛屽畠涔熸槸涓涓?nbsp;reflection 綾伙紝鐢ㄦ潵鎻忚堪瀛楁鎴愬憳鐨勪慨楗拌錛屽“private int”銆傝繖浜涗慨楗拌鑷韓鐢辨暣鏁版弿榪幫紝鑰屼笖浣跨敤 Modifier.toString 鏉ヨ繑鍥炰互“瀹樻柟”欏哄簭鎺掑垪鐨勫瓧絎︿覆鎻忚堪 (濡?#8220;static”鍦?#8220;final”涔嬪墠)銆傝繖涓▼搴忕殑杈撳嚭鏄細
name = d
decl class = class field1
type = double
modifiers = private
-----
name = i
decl class = class field1
type = int
modifiers = public static final
-----
name = s
decl class = class field1
type = class java.lang.String
modifiers =
-----
鍜岃幏鍙栨柟娉曠殑鎯呭喌涓涓嬶紝鑾峰彇瀛楁鐨勬椂鍊欎篃鍙互鍙彇寰楀湪褰撳墠綾諱腑鐢蟲槑浜嗙殑瀛楁淇℃伅 (getDeclaredFields)錛屾垨鑰呬篃鍙互鍙栧緱鐖剁被涓畾涔夌殑瀛楁 (getFields) 銆?br />
6.鏍規(guī)嵁鏂規(guī)硶鐨勫悕縐版潵鎵ц鏂規(guī)硶
鏂囨湰鍒拌繖閲岋紝鎵涓劇殑渚嬪瓙鏃犱竴渚嬪閮戒笌濡備綍鑾峰彇綾葷殑淇℃伅鏈夊叧銆傛垜浠篃鍙互鐢?nbsp;reflection 鏉ュ仛涓浜涘叾瀹冪殑浜嬫儏錛屾瘮濡傛墽琛屼竴涓寚瀹氫簡鍚嶇О鐨勬柟娉曘備笅闈㈢殑紺轟緥婕旂ず浜嗚繖涓鎿嶄綔錛?br /> import java.lang.reflect.*;
public class method2 {
   public int add(int a, int b) {
       return a + b;
   }
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("method2");
           Class partypes[] = new Class[2];
           partypes[0] = Integer.TYPE;
           partypes[1] = Integer.TYPE;
           Method meth = cls.getMethod("add", partypes);
           method2 methobj = new method2();
           Object arglist[] = new Object[2];
           arglist[0] = new Integer(37);
           arglist[1] = new Integer(47);
           Object retobj = meth.invoke(methobj, arglist);
           Integer retval = (Integer) retobj;
           System.out.println(retval.intvalue());
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
鍋囧涓涓▼搴忓湪鎵ц鐨勬煇澶勭殑鏃跺欐墠鐭ラ亾闇瑕佹墽琛屾煇涓柟娉曪紝榪欎釜鏂規(guī)硶鐨勫悕縐版槸鍦ㄧ▼搴忕殑榪愯榪囩▼涓寚瀹氱殑 (渚嬪錛孞avaBean 寮鍙戠幆澧冧腑灝變細鍋氳繖鏍風殑浜?錛岄偅涔堜笂闈㈢殑紼嬪簭婕旂ず浜嗗浣曞仛鍒般?br /> 涓婁緥涓紝getMethod 鐢ㄤ簬鏌ユ壘涓涓叿鏈変袱涓暣鍨嬪弬鏁頒笖鍚嶄負 add 鐨勬柟娉曘傛壘鍒拌鏂規(guī)硶騫跺垱寤轟簡鐩稿簲鐨?nbsp;Method 瀵硅薄涔嬪悗錛屽湪姝g‘鐨勫璞″疄渚嬩腑鎵ц瀹冦傛墽琛岃鏂規(guī)硶鐨勬椂鍊欙紝闇瑕佹彁渚涗竴涓弬鏁板垪琛紝榪欏湪涓婁緥涓槸鍒嗗埆鍖呰浜嗘暣鏁?nbsp;37 鍜?nbsp;47 鐨勪袱涓?nbsp;Integer 瀵硅薄銆傛墽琛屾柟娉曠殑榪斿洖鐨勫悓鏍鋒槸涓涓?nbsp;Integer 瀵硅薄錛屽畠?yōu)畞瑁呬簡杩斿洖鍊?nbsp;84銆?br /> 7.鍒涘緩鏂扮殑瀵硅薄
瀵逛簬鏋勯犲櫒錛屽垯涓嶈兘鍍忔墽琛屾柟娉曢偅鏍瘋繘琛岋紝鍥犱負鎵ц涓涓瀯閫犲櫒灝辨剰鍛崇潃鍒涘緩浜嗕竴涓柊鐨勫璞?nbsp;(鍑嗙‘鐨勮錛屽垱寤轟竴涓璞$殑榪囩▼鍖呮嫭鍒嗛厤鍐呭瓨鍜屾瀯閫犲璞?銆傛墍浠ワ紝涓庝笂渚嬫渶鐩鎬技鐨勪緥瀛愬涓嬶細
import java.lang.reflect.*;
public class constructor2 {
   public constructor2() {
   }
   public constructor2(int a, int b) {
       System.out.println("a = " + a + " b = " + b);
   }
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("constructor2");
           Class partypes[] = new Class[2];
           partypes[0] = Integer.TYPE;
           partypes[1] = Integer.TYPE;
           Constructor ct = cls.getConstructor(partypes);
           Object arglist[] = new Object[2];
           arglist[0] = new Integer(37);
           arglist[1] = new Integer(47);
           Object retobj = ct.newInstance(arglist);
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
鏍規(guī)嵁鎸囧畾鐨勫弬鏁扮被鍨嬫壘鍒扮浉搴旂殑鏋勯犲嚱鏁板茍鎵ц瀹冿紝浠ュ垱寤轟竴涓柊鐨勫璞″疄渚嬨備嬌鐢ㄨ繖縐嶆柟娉曞彲浠ュ湪紼嬪簭榪愯鏃跺姩鎬佸湴鍒涘緩瀵硅薄錛岃屼笉鏄湪緙栬瘧鐨勬椂鍊欏垱寤哄璞★紝榪欎竴鐐歸潪甯告湁浠峰箋?br /> 8.鏀瑰彉瀛楁(鍩?鐨勫?br /> reflection 鐨勮繕鏈変竴涓敤澶勫氨鏄敼鍙樺璞℃暟鎹瓧孌電殑鍊箋俽eflection 鍙互浠庢鍦ㄨ繍琛岀殑紼嬪簭涓牴鎹悕縐版壘鍒板璞$殑瀛楁騫舵敼鍙樺畠錛屼笅闈㈢殑渚嬪瓙鍙互璇存槑榪欎竴鐐癸細
import java.lang.reflect.*;
public class field2 {
   public double d;
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("field2");
           Field fld = cls.getField("d");
           field2 f2obj = new field2();
           System.out.println("d = " + f2obj.d);
           fld.setDouble(f2obj, 12.34);
           System.out.println("d = " + f2obj.d);
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
榪欎釜渚嬪瓙涓紝瀛楁 d 鐨勫艱鍙樹負浜?nbsp;12.34銆?br /> 9.浣跨敤鏁扮粍
鏈枃浠嬬粛鐨?nbsp;reflection 鐨勬渶鍚庝竴縐嶇敤娉曟槸鍒涘緩鐨勬搷浣滄暟緇勩傛暟緇勫湪 Java 璇█涓槸涓縐嶇壒孌婄殑綾葷被鍨嬶紝涓涓暟緇勭殑寮曠敤鍙互璧嬬粰 Object 寮曠敤銆傝瀵熶笅闈㈢殑渚嬪瓙鐪嬬湅鏁扮粍鏄庝箞宸ヤ綔鐨勶細
import java.lang.reflect.*;
public class array1 {
   public static void main(String args[]) {
       try {
           Class cls = Class.forName("java.lang.String");
           Object arr = Array.newInstance(cls, 10);
           Array.set(arr, 5, "this is a test");
           String s = (String) Array.get(arr, 5);
           System.out.println(s);
       } catch (Throwable e) {
           System.err.println(e);
       }
   }
}
渚嬩腑鍒涘緩浜?nbsp;10 涓崟浣嶉暱搴︾殑 String 鏁扮粍錛屼負絎?nbsp;5 涓綅緗殑瀛楃涓茶祴浜嗗鹼紝鏈鍚庡皢榪欎釜瀛楃涓蹭粠鏁扮粍涓彇寰楀茍鎵撳嵃浜嗗嚭鏉ャ?br /> 涓嬮潰榪欐浠g爜鎻愪緵浜嗕竴涓洿澶嶆潅鐨勪緥瀛愶細
import java.lang.reflect.*;
public class array2 {
   public static void main(String args[]) {
       int dims[] = new int[]{5, 10, 15};
       Object arr = Array.newInstance(Integer.TYPE, dims);
       Object arrobj = Array.get(arr, 3);
       Class cls = arrobj.getClass().getComponentType();
       System.out.println(cls);
       arrobj = Array.get(arrobj, 5);
       Array.setInt(arrobj, 10, 37);
       int arrcast[][][] = (int[][][]) arr;
       System.out.println(arrcast[3][5][10]);
   }
}
渚嬩腑鍒涘緩浜嗕竴涓?nbsp;5 x 10 x 15 鐨勬暣鍨嬫暟緇勶紝騫朵負澶勪簬 [3][5][10] 鐨勫厓绱犺祴浜嗗間負 37銆傛敞鎰忥紝澶氱淮鏁扮粍瀹為檯涓婂氨鏄暟緇勭殑鏁扮粍錛屼緥濡傦紝絎竴涓?nbsp;Array.get 涔嬪悗錛宎rrobj 鏄竴涓?nbsp;10 x 15 鐨勬暟緇勩傝繘鑰屽彇寰楀叾涓殑涓涓厓绱狅紝鍗抽暱搴︿負 15 鐨勬暟緇勶紝騫朵嬌鐢?nbsp;Array.setInt 涓哄畠鐨勭 10 涓厓绱犺祴鍊箋?br /> 娉ㄦ剰鍒涘緩鏁扮粍鏃剁殑綾誨瀷鏄姩鎬佺殑錛屽湪緙栬瘧鏃跺茍涓嶇煡閬撳叾綾誨瀷銆?/font>


lanjh 2008-10-05 20:41 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 中文字幕免费观看全部电影| 很黄很污的网站免费| 在线播放免费人成毛片乱码| 国产电影午夜成年免费视频| 亚洲日本va午夜中文字幕久久| 91在线精品亚洲一区二区| 美女的胸又黄又www网站免费| 久久狠狠躁免费观看2020| 日韩成人免费在线| 亚洲视频在线观看免费| 亚洲av无码有乱码在线观看| 久久久精品免费视频| 日本不卡在线观看免费v| 久久久久亚洲av无码尤物| 国产尤物在线视精品在亚洲| 1000部无遮挡拍拍拍免费视频观看| 亚洲Av无码乱码在线观看性色| 亚洲成人一级电影| a级片免费在线观看| 国产精品酒店视频免费看| 中文字幕亚洲综合久久| 夜夜爽妓女8888视频免费观看| 日韩精品福利片午夜免费观着| 亚洲精品无码永久在线观看你懂的| 亚洲精品成a人在线观看☆| 免费成人高清在线视频| 亚洲片国产一区一级在线观看 | 美丽的姑娘免费观看在线播放 | 亚洲欧洲久久精品| 丝瓜app免费下载网址进入ios| 日本免费无遮挡吸乳视频电影| 亚洲经典在线中文字幕| 中文字幕av无码不卡免费| 国产一区二区三区免费看| 中文字幕亚洲综合久久综合| 222www在线观看免费| 亚洲不卡中文字幕无码| caoporn成人免费公开| 国产在线观看免费视频播放器| 亚洲人成网站看在线播放| 1a级毛片免费观看|