一.使用3个jar包。

   zxing-core-1.7.jar,zxing-j2se-1.7.jar,qrgen-1.2.jar

   下载地址:  http://download.csdn.net/detail/jiazhipeng12/8442665

public class Main {

/**

* 生成一个二维码

* @param args

* @throws UnsupportedEncodingException 

*/

  public static void main(String[] args) throws UnsupportedEncodingException {

 String content="Fuck You";

 ByteArrayOutputStream out = QRCode.from(content).to(ImageType.PNG).stream();

 try {

FileOutputStream fout = new FileOutputStream(new File(

         "C:fuck.jpg"));

fout.write(out.toByteArray());

fout.flush();

         fout.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

wKioL1TcTFOwNCphAAL2jCO4FHg388.jpg


二.servler生成URL的二维码

 

  index.jsp 

  <body>

      <form action="xian" method="get">  

            <p>Enter Text to create QR Code</p>  

            <input type="text" name="qrtext" />  

            <input type="submit" value="Generate QR Code" />  

        </form>  

  </body>


xian.servlert

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {


//response.setContentType("text/html");

String qrtext = request.getParameter("qrtext");

 

       ByteArrayOutputStream out = QRCode.from(qrtext).to(ImageType.PNG).stream();

 

       response.setContentType("p_w_picpath/png");

       response.setContentLength(out.size());

 

       OutputStream outStream = response.getOutputStream();

 

       outStream.write(out.toByteArray());

 

       outStream.flush();

       outStream.close();

}

wKiom1TcStziMVihAACtxNjvdro073.jpgwKioL1TcS_zRhVxTAAC5cmtYVjQ918.jpg扫描二维码就可以打开百度了。


三。无法识别中文乱码的问题。

  我网上搜素方法。修改zxing-core-1.7.jar包的com.google.zxing.qrcode.encoder.Encoder.java文件.修改如下:

   static final String DEFAULT_BYTE_MODE_ENCODING = "UTF-8";

使用工具:http://download.csdn.net/detail/jiazhipeng12/8442743

然后使用cmd下的jar命令 jar cvf hello.jar com  重新编译成jar包