<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://ioriwellings.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fioriwellings.spaces.live.com%2fcategory%2fJava%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>不及格的程序员-八神: Java</title><description /><link>http://ioriwellings.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catJava</link><language>en-US</language><pubDate>Thu, 14 Aug 2008 06:40:01 GMT</pubDate><lastBuildDate>Thu, 14 Aug 2008 06:40:01 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://ioriwellings.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-3107968651015171382</live:id><live:alias>ioriwellings</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Java输出图像水印文字</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!957.entry</link><description>&lt;div&gt;&lt;pre&gt;&amp;lt;%@ page autoFlush=&amp;quot;false&amp;quot;  import=&amp;quot;java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*&amp;quot;%&amp;gt;
&amp;lt;%
    String ImageStr = request.getParameter(&amp;quot;ID_Text&amp;quot;);
    if(ImageStr==null || ImageStr.equals(&amp;quot;&amp;quot;))
    {
        response.setContentType(&amp;quot;text/html; charset=gb2312&amp;quot;);
 %&amp;gt;
&amp;lt;HTML&amp;gt;
 &amp;lt;HEAD&amp;gt;
  &amp;lt;title&amp;gt;不及格的程序员－八神
  &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=gb2312&amp;quot;&amp;gt;
 &amp;lt;/HEAD&amp;gt;
 &amp;lt;body&amp;gt;
  &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;ID_Text&amp;quot; name=ID_Text&amp;gt;
    &amp;lt;input type=submit value=&amp;quot;GO&amp;quot;&amp;gt;
 &amp;lt;a href=&amp;quot;index.jsp&amp;quot;&amp;gt;index.html
  &amp;lt;/form&amp;gt;
 &amp;lt;/body&amp;gt;
&amp;lt; 

&amp;lt;%
       }
       else
       {
        out.clear();
        response.setContentType(&amp;quot;image/jpeg&amp;quot;);
        response.addHeader(&amp;quot;pragma&amp;quot;,&amp;quot;NO-cache&amp;quot;);
        response.addHeader(&amp;quot;Cache-Control&amp;quot;,&amp;quot;no-cache&amp;quot;);
        response.addDateHeader(&amp;quot;Expries&amp;quot;,0);
        int width=800, height=600;
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics g = image.getGraphics();
		
        //以下填充背景颜色
        //g.setColor(Color.lightGray);
        //g.fillRect(0, 0, width, height);
		//javax.swing.ImageIcon jpg = new javax.swing.ImageIcon(ImageStr);
		java.io.File file = new java.io.File(request.getRealPath(ImageStr));
	
		java.io.BufferedInputStream bufferIS = new java.io.BufferedInputStream(new java.io.FileInputStream(file));
		byte[] bufferByte = new byte[(int)file.length()];
		System.out.println(bufferIS.read(bufferByte, 0, (int)file.length()));
		javax.swing.ImageIcon jpg = new javax.swing.ImageIcon(bufferByte);

		g.drawImage(jpg.getImage(),0,0,width,height, null);
		/**/
        String random=&amp;quot;random&amp;quot;;
        //以下设置前景色
        //g.setColor(Color.BLACK);
        g.drawString(&amp;quot;Http://www.Wawa.com&amp;quot;,10,20);
        g.drawString(new String(&amp;quot;Author:八神奄[abcsex@sohu.com]&amp;quot;.getBytes(&amp;quot;iso-8859-1&amp;quot;)),10,40);
        g.drawLine(10,50,290,50);
		g.setFont(new java.awt.Font(&amp;quot;楷书-gb2312&amp;quot;,0,18));
        g.drawString(new String(ImageStr.getBytes(&amp;quot;iso-8859-1&amp;quot;)),10,70);
		/**/
        g.dispose();
        ServletOutputStream outStream = response.getOutputStream();
        JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);
        encoder.encode(image);
        outStream.close();
    }

%&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+Java%e8%be%93%e5%87%ba%e5%9b%be%e5%83%8f%e6%b0%b4%e5%8d%b0%e6%96%87%e5%ad%97&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!957.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!957.entry</guid><pubDate>Fri, 28 Jul 2006 07:30:05 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!957/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!957.entry#comment</wfw:comment><dcterms:modified>2006-07-31T09:31:53Z</dcterms:modified></item><item><title>Java JNI 本地调用 交换鼠标左右键</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!955.entry</link><description>&lt;div&gt;星期三 天气：多云&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;以前写的 我在单位习惯使用左手鼠标了 同事们用着不方便 所以&lt;/div&gt;
&lt;div&gt;&lt;pre&gt;public class SwapMouseButton{
 
 static{
  System.loadLibrary(&amp;quot;SwapMouseButton&amp;quot;);
 } 

 private native void swap(boolean flag);
 private native String getString();
 
 public static void main(String[] args){
  SwapMouseButton oSMB = new SwapMouseButton();
  if(args.length==1){
   if(args[0].equals(&amp;quot;true&amp;quot;))
    oSMB.swap(true);
   if(args[0].equals(&amp;quot;false&amp;quot;))
    oSMB.swap(false);
  }
  
 }
}
&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; 使用 javah 编译该类 生成 SwapMouseButton.h&lt;/div&gt;
&lt;div&gt;&lt;pre&gt;/* DO NOT EDIT THIS FILE - it is machine generated */
#include &amp;lt;JNI.H&amp;gt;
/* Header for class SwapMouseButton */

#ifndef _Included_SwapMouseButton
#define _Included_SwapMouseButton
#ifdef __cplusplus
extern &amp;quot;C&amp;quot; {
#endif
/*
 * Class:     SwapMouseButton
 * Method:    swap
 * Signature: (Z)V
 */
JNIEXPORT void JNICALL Java_SwapMouseButton_swap
  (JNIEnv *, jobject, jboolean);

/*
 * Class:     SwapMouseButton
 * Method:    getString
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_SwapMouseButton_getString
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif&lt;/pre&gt;&lt;pre&gt;再写一个本地调用 c++文件：SwapMouseButton.cpp 编译成 dll
&lt;/pre&gt;&lt;pre&gt;#include &amp;lt;WINDOWS.H&amp;gt;
#include &amp;lt;IOSTREAM&amp;gt;
#include &amp;quot;SwapMouseButton.h&amp;quot;

using namespace std;

JNIEXPORT void JNICALL Java_SwapMouseButton_swap(JNIEnv* JEnv, jobject obj, jboolean flag){
    SwapMouseButton(flag);
    cout &amp;lt;&amp;lt; &amp;quot;Swaped Sucess.&amp;quot; &amp;lt;&amp;lt; endl;
}

int main(){
    return 0;
}

运行java 程序 就可以了。&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+Java+JNI+%e6%9c%ac%e5%9c%b0%e8%b0%83%e7%94%a8+%e4%ba%a4%e6%8d%a2%e9%bc%a0%e6%a0%87%e5%b7%a6%e5%8f%b3%e9%94%ae&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!955.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!955.entry</guid><pubDate>Wed, 26 Jul 2006 05:12:57 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!955/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!955.entry#comment</wfw:comment><dcterms:modified>2006-07-26T05:12:57Z</dcterms:modified></item><item><title>死Hibernate</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!646.entry</link><description>&lt;div&gt;星期五　天气：晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;一如即往　早上６点２０　&lt;/div&gt;
&lt;div&gt;早上与燕子起来后　突然发现外面地上有一层小雪&lt;/div&gt;
&lt;div&gt;呵呵　是昨晚上　下的&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;深入浅出Hibernate　呵呵　简直是垃圾&lt;/div&gt;
&lt;div&gt;看看它们的几个作者吧　夏昕　曹晓钢　唐勇&lt;/div&gt;
&lt;div&gt;书的开头　简简单单　地拿　设计模试　还吓虎　初学者&lt;/div&gt;
&lt;div&gt;而书的内容　简直白痴　错误的　印刷　&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;一般人　是不会　弄明白　那些配置的&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;下载了一堆ｊａｒ　文件后　我终于调通它了&lt;/div&gt;
&lt;div&gt;呵呵　这个太失败了　各种ｊａｒ文件　光版本的问题　就让你忙火一陈了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;去死吧　Hibernate　我想总有一天没人想用你的话　一定是那本书造成的　呵呵　娃是好娃啊&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ruby on Rails 框架　呵呵　笑谈　写出的代码　比传统ａｓｐ还要烂&lt;/div&gt;
&lt;div&gt;见鬼去吧　一切鬼东东　一起出来　骗人　&lt;/div&gt;
&lt;div&gt;Shit!!!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e6%ad%bbHibernate&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!646.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!646.entry</guid><pubDate>Fri, 30 Dec 2005 08:23:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!646/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!646.entry#comment</wfw:comment><dcterms:modified>2005-12-30T08:49:57Z</dcterms:modified></item><item><title>线程通信</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!635.entry</link><description>&lt;div&gt;星期二　天气：晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今天收到了　老网友　莹莹　邮来的信　高兴极了　里面还有一张它照片&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今天晚上　我们小组　要去　工作聚餐　想不去　但很为难&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;明天晚上　单位全部聚餐　还得去　烦啊&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;经典论坛上　有人发贴　问　线程之间　通信的问题&lt;/div&gt;
&lt;div&gt;写个例子&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;pre&gt;
public class Test  {
 
 public static void main(String[] args) throws Exception{
  
  AddMethod a = new AddMethod(30);

                                Thread app1 = new Thread(a);
                                app1.setDaemon(true);
                                app1.start();

                                /*打开注释也可以的　紧为例子
                                      while(true){
                                          if(a.testMax()) break;
                                          Thread.sleep(3000);
                                 }*/
                                a.testMax();  

  System.out.println (Thread.currentThread().getName()+&amp;quot; end.&amp;quot;);  
  
 } 
 
}

class AddMethod implements Runnable{
 
 private float fNum = 0.0f;
 private float fMax = 1000;
 private float fStep = 10;
 
 public AddMethod(float fStep){
  this.fStep = fStep;
 }
 
 public void run(){
  System.out.println (Thread.currentThread().getName()+&amp;quot; starting...&amp;quot;);
  try{
   while(true){
    this.addNum();
    Thread.sleep(1000);
   }
  }catch(Exception ex){
   System.out.println (ex.getMessage());
  }
 }
 
 public synchronized void addNum(){
  this.fNum += this.fStep;
  if(this.fNum &amp;gt; this.fMax){   
   this.notifyAll();
  }  
 }
 
 public synchronized boolean testMax(){
  if(this.fNum &amp;lt; this.fMax){
   try{
    System.out.println (Thread.currentThread().getName() + &amp;quot; waitting...&amp;quot;);
    this.wait();
    System.out.println (&amp;quot;fNum &amp;gt; fMax and is &amp;quot; + fNum);
    return true;
   }catch(java.lang.InterruptedException ex){
    System.out.println (ex.getMessage());
   }
  }
  return true;
 }
 
}

class TestThread extends Thread{
 
 private AddMethod o = null;
 
 public TestThread(AddMethod o){
  this.o = o;
  //this.setDaemon(false);
 }
 public void run(){
  this.o.testMax();
 }
}

&lt;/pre&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e7%ba%bf%e7%a8%8b%e9%80%9a%e4%bf%a1&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!635.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!635.entry</guid><pubDate>Tue, 27 Dec 2005 07:23:31 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!635/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!635.entry#comment</wfw:comment><dcterms:modified>2005-12-27T07:23:31Z</dcterms:modified></item></channel></rss>