平时使用了那么多的二维码,今天我们自己做一个二维码。今天刚安装了IDEA,学会了用法,就来通过IDEA做一个生成二维码的程序。

首先新建一个项目

设置项目名称

点击Next之后,出现下图所示页面:

         这里要注意,都是默认的就行(但是记住框出的文件目录,之后会有用 ),然后Finish完成项目创建。项目创建成功之后是要下载  jar 包到项目中的,但是,默认的下载路径是一个国外的下载网站,会比减慢,所以要配置下载路径,这时候就需要刚才的目录了,在刚才的目录下放入settings.xml,文件下载参考https://download.csdn.net/download/m0_53197131/20337849。文件放入如图目录实例:

放入文件之后,在进入IDEA,等待下载完成就行了。

那么问题来了,如果下载失败怎么办呢?

下载失败没事,一般添加配置文件更改下载地址之后第一次容易出错,以后就不会了。鼠标放到项目名称上,右键  ----  Open In  ----  Explorer  ----  选中创建的项目删掉,然后关闭IDEA再重新进入,按照上边的过程再建立一个项目就可以了。第一次已经添加过,这时候并不需要再次添加配置文件,等待下载即可,下载完成后的界面如图:

然后打开项目下的pom.xml文件,添加如下配置:

<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version>
</dependency>

保存文件,然后点击右上角的图标再次下载jar包,等待下载完成。

然后就是开始创建java类,导包之类的了。

创建java类的步骤就不多做描述了,新建Javaclass类Code,直接上图

然后就是在Code 文件中写java代码了,先上代码:

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageConfig;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.CharacterSetECI;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;/*** QRCode工具类** @author: GaoHuanjie*/
public class Code {/*** 生成二维码** @author GaoHuanjie**/public static boolean createQRCode(String content, int width, int height, int margin, String filePath,String fileName, String formatName) throws Exception {if (content == null || content.equals("")) {throw new Exception("二维码内容不能为空。");}// 二维码基本参数设置Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();hints.put(EncodeHintType.CHARACTER_SET, CharacterSetECI.UTF8);// 设置编码字符集utf-8hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 设置纠错等级L/M/Q/H,当二维码被损毁一部分时,纠错等级越高,越可能读取成功;同样的,纠错等级越高,单位面积内点阵的点越多,机器扫描时,识别所需时间越长,当前设置等级为最高等级Hhints.put(EncodeHintType.MARGIN, margin);// 可设置范围为0-10,但仅四个变化0 1(2) 3(4 5 6) 7(8 9 10)// 生成图片类型为QRCodeBarcodeFormat format = BarcodeFormat.QR_CODE;// 创建位矩阵对象BitMatrix matrix = null;try {// 生成二维码对应的位矩阵对象matrix = new MultiFormatWriter().encode(content, format, width, height, hints);} catch (WriterException e) {e.printStackTrace();}// 设置位矩阵转图片的参数MatrixToImageConfig config = new MatrixToImageConfig(Color.black.getRGB(), Color.white.getRGB());// 位矩阵对象转BufferedImage对象BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(matrix, config);// 判断路径是否存在,不存在则创建File path = new File(filePath);if (!path.exists()) {path.mkdirs();}// 路径后补充斜杠if (filePath.lastIndexOf("\\") != filePath.length() - 1) {filePath = filePath + "\\";}// 二维码全路径filePath = filePath + fileName + "." + formatName;try {// 输出图片文件到指定位置return ImageIO.write(bufferedImage, formatName, new File(filePath));} catch (IOException e) {e.printStackTrace();}return false;}public static void main(String[] args) {String content = "https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=%E5%A3%81%E7%BA%B8&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=undefined&latest=undefined&copyright=undefined&cs=2544377084,275372641&os=3052229399,834441112&simid=3533086814,586585425&pn=59&rn=1&di=72930&ln=3476&fr=&fmq=1526269427171_R&fm=&ic=0&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=0&objurl=https%3A%2F%2Fss0.baidu.com%2F-Po3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0e2442a7d933c895ca486665d51373f0820200fd.jpg&rpstart=0&rpnum=0&adpicid=0&nojc=undefined";//二维码内容int width = 888;//二维码宽度int height = 888;//二维码高度int margin = 3;//二维码边距String filePath = "D:\\";//二维码保存路径String fileName = "高清壁纸,你值得拥有!";//二维码文件名String formatName = "jpg";//二维码图片格式try {// 生成二维码if(createQRCode(content, width, height,margin,filePath, fileName, formatName)) {System.out.println("Yes");return;}System.out.println("No");} catch (Exception e) {e.printStackTrace();}}
}

可以自己更改主函数的链接,可以改成网页链接或是网图都可以:

String content = "https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=%E5%A3%81%E7%BA%B8&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=undefined&latest=undefined&copyright=undefined&cs=2544377084,275372641&os=3052229399,834441112&simid=3533086814,586585425&pn=59&rn=1&di=72930&ln=3476&fr=&fmq=1526269427171_R&fm=&ic=0&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=0&objurl=https%3A%2F%2Fss0.baidu.com%2F-Po3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0e2442a7d933c895ca486665d51373f0820200fd.jpg&rpstart=0&rpnum=0&adpicid=0&nojc=undefined";//二维码内容

也可以改二维码文件的位置这里我设置的是D盘根目录:

 String filePath = "D:\\";//二维码保存路径

还可以改二维码的名字与图片格式:

String fileName = "高清壁纸,你值得拥有!";//二维码文件名
String formatName = "jpg";//二维码图片格式

有些同学这时候会出现错误,这是因为下载的包没有加载到文件中,这时候刷新就可以。

按照图中的步骤,双击clean和compile就可以了。

右键  ----  Run  运行,之后就可以在D盘根目录下看到生成的二维码了。

生成的二维码如图:

之后就可以用手机扫描二维码,可以看到链接的内容。学会了就去试试吧

使用IDEA创建一个通过url链接生成二维码的java程序|自动生成二维码相关推荐

  1. java 试卷自动生成_基于JAVA的试题自动生成系统 - WEB源码|JSP源码/Java|源代码 - 源码中国...

    压缩包 : 试卷自动生成系统.rar 列表 试卷自动生成系统/.classpath 试卷自动生成系统/.project 试卷自动生成系统/bin/Db/Sql.class 试卷自动生成系统/bin/f ...

  2. 相机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像

    机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像 一.针孔相机模型 二.双目相机模型 三.OpenCV实例实现用Pangolin生成视差图像和3 ...

  3. 额,你在main.xml中加了一个id以后,要右键点save,才会将这个id加入到R中,否则是没有的。。。R里的东西是程序自动生成的~~~...

    我修改了 main.xml 然后我在主函数中调用main里面的东西 例如在main.xml加了一个id 我在主函数用 R.id老是调用不出来 如何才能快速的准确的调用出 main.xml里面的东西呢? ...

  4. java代码自动生成的插件_如何使用插件生成自定义Java 8代码

    java代码自动生成的插件 大多数程序员讨厌的一件事就是编写样板代码. 无休止的时间花费在设置实体类和配置数据库连接上. 为了避免这种情况,您可以让Speedment Open Source之类的程序 ...

  5. java ee自动生成编码_EE Servlet 3:在Servlet中生成HTML输出

    java ee自动生成编码 如果您只需要在EE Web模块中处理少量请求URI,那么在Servlet代码中生成自己HTML响应可能比使用完整的模板库更容易. 作为示例的一部分,我尝试了一个非常简单的J ...

  6. DELMIA软件弧焊仿真:以工件边缘曲线为焊缝的机器人程序自动生成

    目录 功能介绍 弧焊焊接焊点坐标创建 弧焊焊点坐标姿态批量调整 机器人弧焊焊接程序自动生成 弧焊焊接机器人仿真运行 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢 ...

  7. 使用Java代码自动生成工具:Telosys

    在Java开发工具中Java代码自动生成工具是很常见的,代码生成是模型驱动开发中最简单和最常用的技术.我们使用一个信息源,一种模型形式,并将其与一些模板结合起来以获得生成的工件,例如代码. 代码生成是 ...

  8. android 学习 解决R.java不能自动生成问题,编译时adb.exe 找不到问题

    android 学习 解决R.java不能自动生成问题,编译时adb.exe 找不到问题 参考文章: (1)android 学习 解决R.java不能自动生成问题,编译时adb.exe 找不到问题 ( ...

  9. java 生成dump文件_程序自动生成Dump文件

    前言:通过drwtsn32.NTSD.CDB等调试工具生成Dump文件,drwtsn32存在的缺点虽然NTSD.CDB可以完全解决,但并不是所有的操作系统中都安装了NTSD.CDB等调试工具.了解了m ...

最新文章

  1. 支持向量所在超平面方程_支持向量机通俗导论:理解SVM的三层境界(一)
  2. dreamweaver2020中文版
  3. 区块链预言机(5)预言机原理
  4. Netronome为中国云计算大幅提速升效降成本
  5. httpRuntime 一点经验---引
  6. 作者:林春雨,男,现任北京拓尔思信息技术股份有限公司高级副总裁、助理研究员。...
  7. 信息学奥赛一本通 1136:密码翻译 | OpenJudge NOI 1.7 09
  8. Android 拦截TextView中超链接点击事件
  9. C ++ 的 背 影    ——C++之父Bjarne Stroustrup印象 左轻侯 2002.11.4
  10. 公司架构师常常提起的DNS负载均衡是个什么鬼?
  11. 判断日期是否是合法的:
  12. 基于模拟退火算法解决TSP问题 | MATLAB源码
  13. 佳铁精雕机连接电脑设置_佳铁精雕机在程式里怎么更改G57之后的坐标
  14. 浏览器是先执行js还是先加载HTML,在HTML中使用JavaScript(浏览器对js的加载机制分析)...
  15. 1525C - Robot Collisions
  16. linux下ps什么软件下载,Linux下4个免费和开源的Adobe Photoshop替代品
  17. Qt之使用QTreeView实现QQ好友列表
  18. 华师 计算机组成原理作业,16秋华师《计算机组成原理》在线作业.doc
  19. mtk-2017 GPS Training
  20. JAVA语言程序设计张思民实验_Java语言程序设计习题答案(清华大学出版杜)张思民版-1-12章答案全讲述.doc...

热门文章

  1. 微信小程序onLoad与onLaunch执行顺序的统一
  2. c语言编数控机床宏程序,数控车床宏程序怎么编啊?
  3. 分享我的电子藏书:C系列
  4. 计算机毕业设计Python+uniapp+安卓基于Android的物流快递app(WEB+APP+LW)
  5. P2255 [USACO14JAN]记录奥林比克Recording the M…
  6. c语言比较三个数大小输出最小值,比较ABC三个数的大小,从小到大排列输出。,c语言比较三个数大小按从大到小顺序输出...
  7. python可视化第一篇——基于matplotlib库
  8. 屌丝程序猿对一个产品的思考
  9. avada 修改head.php,php - 使用WordPress Avada子主题将主徽标链接到自定义URL而不是首页? - 堆栈内存溢出...
  10. 【渝粤题库】陕西师范大学165105商务礼仪作业(高起专)