4000款java游戏打包下载

由于7233资源无法下载,导致本站大部分游戏也无法下载。因此我从手机乐园下载了一批游戏并打包。压缩包内一条龙,并且已经分好类了,包含jar游戏文件、游戏截图、游戏简介,解压密码:cway.top下载链接:https://pan.xunlei.com/s/VMRDJywBKDnfBocFk2er3idqA1 提取码:abrt若是手机用户请使用手机迅雷下载,下载好后可使用ZArchiver等可以解压密码文件的app进行解压。不过建议在电脑上解压,想玩哪些复制到手机即可,因为解压后的文件实在是非常多。zarchiver下载:https://hik.lanzoux.com/iwLobkhvsyf

几种CI持续集成工具简介

Travis CI首先要介绍的Travis CI是一个广泛使用的CI工具,因为它简直是Github爱好者的福音,而且用户份额很大。其支持绝大部分主流编程语言,包括但不限于:C、Java、Python、PHP等等。目前有超过90万的开源项目、60万的用户在使用Travis CI来作为他们的持续集成工具。Travis CI最大的特色和便利店是其与开源社区Github兼容得非常好,它可以极其方便地帮你为Github上的开源项目仓库快速地拉起一个持续集成防护网,而且对于开源项目完全免费,不花一分钱,这对学习者非常友好。而且Travis CI的用法也不复杂,也不需要你写什么复杂代码,它是用过 yml配置文件的形式来指定Travis CI要做的事情,来满足你的流程规划,先做什么,再做什么,最后做什么,挺方便。Jenkins大名鼎鼎的Jenkins简直如雷贯耳,国内很多的通信大厂、互联网大厂都正在使用中!Jenkins是一款开源的 CI&CD 工具,工具本身是Java写的,然而却支持各种编程语言项目的自动化任务,包括构建、测试、部署等。Jenkins一直是开源CI&CD软件领导者, 安装简易、配置简单、提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。Jenkins 支持各种运行方式,可通过系统包安装、也可以作为Java程序安装,甚至可以通过Docker来安装。而且Jenkins在企业级开发中可以非常便捷地与SVN、Git等代码管理工具无缝对接!如今已经步入2.0时代的Jenkins系统,其最大的特色便是加入了Pipeline流水线功能,Pipeline的加持,让Jenkins系统对项目做持续集成时变得更加灵活和强大。必须要说的是,Jenkins系统现在确实越来越庞大,越来越“重”了,如果真是个小项目那它来做持续集成有点浪费了。Circle CICircleCI 功能上和上面介绍的两个工具其实也差不多,但是使用起来可能更加“轻量”一些,这对学习者来说还是非常友好的!Circle CI也支持GitHub、Bitbucket等平台上的项目,只要你项目的代码有变更,就会自动抓取,根据你的配置,提供运行环境,执行测试、构建和部署等一系列自动化操作。Drone CIDrone CI与上面提到的诸如Jenkins等系统相比, 它也算是一个更加轻量级的CI工具,无论是工具本身的安装、部署,还是利用它做一些自动化工作流程的构建,都会简洁一些,更加好上手一些。Drone CI工具的使用,基本上也就是几行配置文件的事情,就像下面这样,不烦心其他工具除了前文提到的这四个主流工具,其他还有诸如像:flow.ciCodeShipSemaphore CI等等工具和网站,思想都差不多,都可以帮我们完成持续集成的目标!作者:CodeSheephttps://www.bilibili.com/read/cv4147684出处: bilibili

适合Java初学者的Spring Boot实战文章合集Spring-Boot-In-Action

来自b站大佬codesheep的文章合集仓库:https://github.com/hansonwang99/Spring-Boot-In-Action

利用阿里Teambition搭建个人网盘 TeambitionShare网盘直链解析

简述下流程:首先你要有Teambition账号,登录后创建项目,在网址栏复制project/后的一串字符(下文称为项目ID),安装以下开源项目到你的虚拟主机或Windows电脑,访问后设置项目id、Teambition的cookie等信息即可。源码PHP的,所以只需要PHP虚拟主机即可。TeambitionShare开源地址:https://github.com/FlxSNX/TeambitionShareGitee上的Fork地址:https://gitee.com/cwayteam/TeambitionShare.git彩虹的教程:http://blog.cccyun.cn/post-414.html当然windows电脑亦可直接运行node.js版本:https://hik.lanzoux.com/iz4skkictqf解压后直接运行即可。

安卓安装xapk等多应用包教程

SAI一款可以安装非. apk格式的小工具,非典型 apk文件的相关介绍可参考少数派文章:https://sspai.com/post/60228 Google play SAI:https://474b.com/file/19167328-443529268酷安下载:https://www.coolapk.com/apk/com.aefyr.sai背景支持「多 APK」特性的应用越来越多,一些与之对应的第三方分发方式也逐渐成型。以 Netflix 的安装包为例:我们在 APKMirror 能够下载到一个后缀名为 .apkm 格式的安装包,在 ApkPure、Aptoide 这类网站上则能够下载到一个后缀名为 .xapk 格式的安装包。因此这款app可以完成你对这些格式软件的安装

几个常用正则

匹配非特殊字符串:([\\u2E80-\\u9FFF]|\\w|[,,\\.。()])*匹配手机号:1[34578][0-9]{8,10}匹配任意字符:[\s\S]+?匹配汉字:[\u4e00-\u9fa5]{0,}匹配邮箱:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址:[a-zA-z]+://[^\s]*

一个讲解开源项目系列文章库

无意中看到的,存个书签吧:https://github.com/HelloGitHub-Team/Article

安卓手机OTG无法写入文件解决方法

解决方法:将移动设备用DiskGenius格式化成FAT32即可。本机MIUI使用NTFS格式只能读取无法写入,并且播放大视频拖动进度条时需要缓存时间,改成FAT32后播放视频可以随时拖动。手机自带文件管理器无法识别OTG,可以尝试使用ES文件管理器。

EasyExcel的简单使用

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 github地址:https://github.com/alibaba/easyexcel依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.17</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.7</version> </dependency>若是使用jar包方式请下载:https://hik.lanzoux.com/i1qEtk5mvzi使用官方文档:https://www.yuque.com/easyexcel/doc/easyexcel一般操作官网都有,下列介绍不创建对象方式创建Excel,并且自定义列宽、单元格对齐方式。示例为导出表格其中代码设置样式参考:https://www.yuque.com/easyexcel/doc/write#W4u1e示例 response.reset(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + new String(fileName.getBytes("UTF-8"), "ISO8859-1")); ServletOutputStream out = response.getOutputStream(); // 头的策略 WriteCellStyle headWriteCellStyle = new WriteCellStyle(); // 内容的策略 WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); // 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现 HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); EasyExcel.write(out).registerConverter(new TimestampCovert()) .registerWriteHandler(horizontalCellStyleStrategy) .registerWriteHandler(new FixedColumnWidthStyleStrategy()) .head(Utils.toTead(titles)) .sheet("sheet1").doWrite(list); out.flush();Converter由于表格数据list来自数据库,包含Timestamp类型数据,因此这里需要自己写了个转换器:import com.alibaba.excel.converters.Converter;import com.alibaba.excel.enums.CellDataTypeEnum;import com.alibaba.excel.metadata.CellData;import com.alibaba.excel.metadata.GlobalConfiguration;import com.alibaba.excel.metadata.property.ExcelContentProperty;import java.sql.Timestamp;import java.text.SimpleDateFormat;public class TimestampCovert implements Converter<Timestamp> { @Override public Class supportJavaTypeKey() { return Timestamp.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.STRING; } @Override public Timestamp convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { return Timestamp.valueOf(cellData.getStringValue()); } @Override public CellData convertToExcelData(Timestamp timestamp, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { return new CellData<>(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(timestamp)); }}详细可参考:https://blog.csdn.net/fsadkjl/article/details/105823830WriteHandler示例代码中使用了样式的与列宽的Handler,FixedColumnWidthStyleStrategy继承了AbstractColumnWidthStyleStrategy,代码如下:import com.alibaba.excel.metadata.CellData;import com.alibaba.excel.metadata.Head;import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;import org.apache.poi.ss.usermodel.Cell;import java.util.List;public class FixedColumnWidthStyleStrategy extends AbstractColumnWidthStyleStrategy { private int columnWidth = 23; @Override protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) { writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256); } public FixedColumnWidthStyleStrategy() { } public FixedColumnWidthStyleStrategy(int columnWidth) { this.columnWidth = columnWidth; }}headhead设置头信息,由于head是一个List<List<String>>集合,这里封装成方法,传表头集合进去生成合适的表头类型。 public static List<List<String>> toTead(List<String> titles) { List<List<String>> list = new ArrayList<List<String>>(); List<String> head = new ArrayList<String>(); for (String title : titles) { head.add(title); list.add(head); head = new ArrayList<String>(); } return list; }筛选列导出可以根据传入的需要显示的字段titles动态改变sql获取数据,若查出所有字段的话筛选如下: /** * 设置表格信息 * @param dataList 查询出的数据 * @param titles 需要显示的字段 * @return */ private static List<List<Object>> dataList(List<Object> dataList, List<String> titles) { List<List<Object>> list = new ArrayList<>(); for (Object person : dataList) { List<Object> data = new ArrayList<>(); for (String fieldName : titles) { /**通过反射根据需要显示的字段,获取对应的属性值*/ data.add(getFieldValue(fieldName, person)); } list.add(data); } return list; } /** * 根据传入的字段获取对应的get方法,如name,对应的getName方法 * @param fieldName 字段名 * @param person 对象 * @return */ private static Object getFieldValue(String fieldName, Object person) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = person.getClass().getMethod(getter); return method.invoke(person); } catch (Exception e) { logger.error("使用反射获取对象属性值失败", e); return null; } }参考:https://my.oschina.net/zjiamin/blog/4710076

VeraCrypt开源硬盘加密工具

VeraCrypt 是 TrueCrypt 的分支,于2013年6月发布,项目的主要开发者是来自法国的安全顾问 Mounir Idrassi 。Idrassi 创建 VeraCrypt 分支的动机是在 2012 年他被要求在客户产品中整合 TrueCrypt,他评估了 TrueCrypt代码后发现它存在一些问题,TrueCrypt 的主要弱点是不能防御暴力破解攻击。在加密系统分区时,TrueCrypt 使用 PBKDF2-RIPEMD160 算法进行 1000 次迭代;对于标准容器和非系统分区,TrueCrypt 最多迭代 2000 次。相比之下,VeraCrypt 使用 PBKDF2-RIPEMD160 算法对系统分区迭代 327,661 次,对于标准容器和非系统分区,迭代次数进一步增加到 655,331 次,大幅增加暴力破解难度。结果是,VeraCrypt 打开加密分区的速度略慢,而它的加密格式也不兼容于 TrueCrypt。另一个 TrueCrypt 分支 CipherShed 项目则努力兼容 TrueCrypt 加密格式。(以上介绍内容来自 Solidot)。可以说VeraCrypt 是 TrueCrypt停止维护的一个替代品,其官网:https://www.veracrypt.fr/en/Home.html支持windows、mac、linux平台还是挺不错的,不过加载速度不如windows的bitlocker,但是可以多平台使用,各有优劣吧。另兼容 TrueCrypt 的 CipherShed 官网:https://www.ciphershed.org/